需要log4j致命级别日志记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要log4j致命级别日志记录相关的知识,希望对你有一定的参考价值。

这是我的log4j.xml。我想只有FATAL日志从包com.xyz.rest应打印到/LOGS/Acb/d.log文件。

但我可以在文件中看到Debug级日志。为什么log4j正在从Debug包中打印com.xyz.rest级别日志。

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<appender name="Def" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/LOGS/Acb/d.log"/>
        <param name="MaxFileSize" value="10000KB"/>
        <param name="MaxBackupIndex" value="10"/>

        <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d [%t] %-5p [%c{1}] %m%n"/>
        </layout>
</appender>
<logger name="com.xyz.rest">
        <logger value="fatal"/>
        <appender-ref ref="Def"/>
</logger>

</log4j:configuration>
答案

这是因为使用以下代码,您将在level包中添加另一个日志com.xyz.rest,这不会删除您的包从父项继承的debug级别:

<logger name="com.xyz.rest">
        <logger value="fatal"/>
        <appender-ref ref="Def"/>
</logger>

你需要的是将additivity设置为false,这样你就可以设置日志级别,而不是添加另一个日志级别:

<logger name="com.xyz.rest" additivity="false">
        <logger value="fatal"/>
        <appender-ref ref="Def"/>
</logger>

更多信息可以在here找到。

不确定,但也可能需要将<logger></logger>标签括在<loggers></loggers>标签中

以上是关于需要log4j致命级别日志记录的主要内容,如果未能解决你的问题,请参考以下文章

日志记录-Log4j

日志工具 Log4j

我们可以在运行时更改log4j的日志记录级别吗?

Java 日志级别 - 何时使用啥

关于log4j日志级别问题,懂的来

Log4j介绍及使用