当前位置: 首页 > 知识库问答 >
问题:

级别的特定记录器

尹承泽
2023-03-14

我正在使用log4j进行日志记录。我有一个场景,我必须为不同的严重性使用单独的日志记录。例如,对于软件包foo,我必须在控制台中打印具有严重性ERROR的消息,而我必须在日志文件中打印具有严重性WARN的消息。我如何配置我的log4j.xml相同。

共有1个答案

鄂坚
2023-03-14

您可以使用LevelMatchFilter完成您的任务。此外,您不应该忘记使用另一个过滤器——DenyAllFilter——作为过滤器链中的最后一个过滤器。

您的log4j.xml如下所示:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="LevelToMatch" value="ERROR" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />     
    </appender>

    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
        <param name="File" value="error.log" /> 
        <layout class="org.apache.log4j.SimpleLayout" />
        <filter class="org.apache.log4j.varia.LevelMatchFilter">
            <param name="LevelToMatch" value="WARN" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
        <filter class="org.apache.log4j.varia.DenyAllFilter" />     
    </appender>

    <logger name="foo">
         <level value="WARN" />
         <appender-ref ref="consoleAppender" />
         <appender-ref ref="fileAppender" />
    </logger>
</log4j:configuration>
 类似资料:
  • 问题内容: 我正在使用python日志记录模块在python代码中记录事件。我也希望记录2个日志文件,一个包含用户信息,另一个包含针对开发人员的更详细的日志文件。我已将两个日志文件设置为所需的级别(usr.log = INFO和dev.log = ERROR),但无法解决如何将日志记录限制为usr.log文件,因此仅写入INFO级别日志到日志文件,而不是INFO以及上面的所有其他内容,例如INFO

  • 我有一个logback配置,它有一个带有阈值筛选器的附加器: 这确保只有信息和更高级别(警告、错误)被记录到syslog。但是,我们使用的第三方库之一是在调试时记录特定事件,我希望将此事件记录到syslog。我想到的第一个方法是尝试重新映射日志记录程序中的日志级别,但不确定这是否可能?类似于: 谢谢,

  • 本文向大家介绍Java记录级别,包括了Java记录级别的使用技巧和注意事项,需要的朋友参考一下 示例 Java Logging Api具有7个级别。级别降序为: SEVERE (最高值) WARNING INFO CONFIG FINE FINER FINEST (最低值) 默认级别为INFO(但这取决于系统和使用的虚拟机)。 注意:也有两个级别OFF(可用于关闭登录)和ALL(的相反OFF)。

  • 在我的log4j2配置中,我将一个AsyncRoot设置为INFO,因为我想在一个文件中记录这个级别和更高的级别。 但我也希望将错误级别记录到特定的文件和在AsyncRoot中配置的appender中 null 谢谢你

  • org.apache.log4j.Level级别。 您还可以通过对Level类进行子类化来定义自定义级别。 水平 描述 ALL 所有级别包括自定义级别。 DEBUG 指定对调试应用程序最有用的细粒度信息事件。 INFO 指定信息性消息,以粗粒度级别突出显示应用程序的进度。 WARN 指定潜在有害的情况。 ERROR 指定可能仍允许应用程序继续运行的错误事件。 FATAL 指定非常严重的错误事件,可

  • 现在,问题是,当我以以下方式进行日志记录时: 尽管根记录器级别被设置为“错误”,但日志条目仍然存在于两个日志文件中。然而,当我去掉“it.pkg.testpkg.service”记录器(通过注释或删除它)时,条目停止进入根记录器。我不太清楚这是怎么回事。 目前,我已经找到了一个临时解决方案,方法是在“root_file_appender”中添加以下条目: 谢了。