如何配置log4j2具有两个根级别?

2024-01-27

我想按以下方式配置 log4j2:

  1. 向 Sentry 报告错误事件。
  2. 将 INFO 事件报告到日志文件。

就像是:

    <Loggers>
        <!-- ERROR events are reported to Sentry. -->
        <Root level="error">
            <AppenderRef ref="Sentry" />
        </Root>

        <!-- INFO events are reported to log file. -->
        <Root level="info">
            <AppenderRef ref="myLog" />
        </Root>

但我当然会收到错误“配置有多个根记录器。只能有一个。”。


您也可以指定附加程序的日志级别 -

<Loggers>
        <Root>
            <AppenderRef ref="Sentry" level="error "/>
            <AppenderRef ref="myLog" level="info" />
        </Root>
</Loggers>

通过此配置,错误和以上级别的日志将发送到Sentry附加器。并且信息和以上级别的日志(包括错误)将发送到myLog

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置log4j2具有两个根级别? 的相关文章

随机推荐

  • WPF // MahApps.Metro // Caliburn.Micro // 弹出控件 // HeaderedContentControl

    自从 MahApps Metro 1 5 0 发生变化以来 Flyout 的基本元素已从ContentControl to HeaderContentControl 现在使用 Caliburn Micro 和 MVVM 方法this htt
  • Android 原生代码:将 Surface 分配给特定显示器

    我正在寻找一种将 Surface 本机窗口 对象分配给显示器的方法 以便提交到该本机窗口的缓冲区将渲染到该特定显示器而不是主显示器 我想用本机代码来做到这一点 在Java中 可以通过使用Presentation API来完成 在本机代码中我
  • Mockito:如何测试构造函数被调用?

    我正在使用 Mockito 来测试 Java 应用程序中的方法 如何测试构造函数是否被调用过一次 我正在尝试进行类似的验证 verify myClass times 1 doSomething anotherObject 但我无法验证构造函
  • python 通过列表创建一个包含一行的数据框

    在Python中 假设我有一个列表 1 2 3 100 我想使用这个列表创建一个数据框 其中有一行 行值是列表 最快且优雅的方法是什么 将列表作为列表参数传递给data In 11 l range 1 100 pd DataFrame da
  • 在 Django 中通过哈希有效保存文件

    我正在开发一个 Django 项目 我希望用户能够做的是上传文件 通过表单 然后将文件本地保存到自定义路径并使用自定义文件名 其哈希值 我能想到的唯一解决方案是使用我正在使用的 FileField 的 upload to 参数 这意味着什么
  • 找不到与给定名称匹配的资源(在“title”处,值为“@string/action_settings”)

    所以我最近 就像今天最近 开始尝试在eclipse中工作 我一直在关注 Android 开发者初学者课程 到目前为止一切都很顺利 我已经开始构建一个简单的用户界面 http developer android com training ba
  • 无法找到软件包 openssl-dev

    我正在尝试使用 Ubuntu 18 04 在 Linux 上安装 ROOT CERN 软件包 每当我进入先决条件下载时 都使用以下命令 sudo apt get install dpkg dev cmake g gcc binutils l
  • 接口继承一致性

    首先看这段代码 class Program static void Main string args var x Base new Derived IMethod x DoWork Console ReadKey interface IMe
  • 背包0-1个定量

    我正在编写具有多个约束的背包 0 1 的变体 除了重量约束之外 我还有数量约束 但在本例中 我想解决背包问题 因为我的背包中需要恰好有 n 件物品 且重量小于或等于 W 目前正在为简单的 0 1 案例实现动态编程 ruby 解决方案 基于
  • 身份验证:JWT 使用与会话

    在身份验证等情况下 使用 JWT 相对于会话有什么优势 它是作为独立方法使用还是在会话中使用 JWT 本身并没有使用 会话 的优势 JWT 提供了一种在客户端维护会话状态的方法 而不是在服务器上进行维护 人们在问这个问题时通常的意思是 使用
  • file.slim.js 中的 slim 是什么

    请原谅我的无知 但我刚刚使用 npm 安装了 jQuery 并且在 jQuery 文件之间有一个名为jquery slim js 什么是slim 我知道min代表缩小但苗条对我来说是新的 顺便说一句我很确定slim不像min因为还有另一个文
  • Bash 条件:如何使用“and”表达式? (如果 [ ! -z $VAR && -e $VAR ])

    我想我不清楚如何进行 和 测试 我想确保存在一个可以很好地工作的论点 e VAR 但事实证明 在空字符串上也计算为 true 这是我不想要的 我如何将它们 和 在一起 或者是否有另一个一元测试可以实现我想要的 if z var e var
  • Julia 中的复制和深复制有什么区别?

    我试图理解之间的区别copy and deepcopy 在朱莉娅 根据我读到的内容朱莉娅文档 https docs julialang org en v1 base base Base copy这好像是deepcopy 复制这些值 然后创建
  • 适用于 iOS 的 Google 地图 API myLocationEnabled 无法正常工作

    我正在尝试使用 Google Maps API 但在获取用户位置时遇到问题 观察到的值似乎永远不会改变 因为observeValueForKeyPath 从未被调用 注意 我正在运行 Xcode 6 Beta 5 和 iOS 8 beta
  • 在 Swift 中使用 AWSTask 对象的正确方法是什么?

    您好 提前感谢您的宝贵时间 在我的代码中 我向 AWSSQS 发出各种请求 这些请求都返回 AWSTask 我发现使用这些 AWSTask 对象非常困难 同时还试图将特定于 AWS 的所有逻辑保留在单个类中 以便我可以在需要时轻松切换到不同
  • 应用程序根目录的默认路由

    我该如何告诉我的mvc 应用程序路由到特定Controller and Action当它们没有被指定时 调试时http localhost 54500 应该路由到http localhost 54500 Home Index 目前我有 ro
  • 在 Devise 中为用户手动登录时,如何将“记住我”设置为“是”?

    In Devise http github com plataformatec devise 我像这样登录我的用户 sign in and redirect user user 在默认登录页面中 有一个复选框可供用户选择 这样他们返回站点时
  • 如何在Android中打开现有的Fragment交易?

    如何在Android中打开现有的Fragment交易 是否用于将现有片段替换为操作栏中下拉列表中的新片段 以防万一这就是您所要求的 请更改 FragmentTransaction ft openFragmentTransaction to
  • Tomcat 7 - JSESSIONID cookie 无法从 JavaScript 代码访问

    有谁知道 Tomcat 6 和 Tomcat 7 之间的配置发生了什么变化会导致JSESSIONIDcookie 无法通过 JavaScript 访问 使用 Tomcat 6 alert document cookie JSESSIONID
  • 如何配置log4j2具有两个根级别?

    我想按以下方式配置 log4j2 向 Sentry 报告错误事件 将 INFO 事件报告到日志文件 就像是