Java 调试未保存在debug.log下

Java 调试未保存在debug.log下,java,xml,servlets,logging,log4j,Java,Xml,Servlets,Logging,Log4j,我使用xml配置使用log4j创建了一个应用程序,应用程序根据级别保存日志,…ierror logs到error.log,info logs到info.log 应用程序工作正常,但调试日志未保存在debug.log文件下。rest所有日志都已正确保存 谁能告诉我一些解决方法吗 我的log4jConfig.xml如下所示 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "lo

我使用xml配置使用log4j创建了一个应用程序,应用程序根据级别保存日志,…ierror logs到error.log,info logs到info.log

应用程序工作正常,但调试日志未保存在debug.log文件下。rest所有日志都已正确保存

谁能告诉我一些解决方法吗

我的log4jConfig.xml如下所示

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="debug-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${openfireHome}/logs/debug.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-7p %10c{1} - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="debug" />
            <param name="LevelMin" value="debug" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <appender name="info-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${openfireHome}/logs/info.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-7p %10c{1} - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="info" />
            <param name="LevelMin" value="info" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <appender name="warn-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${openfireHome}/logs/warn.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-7p %10c{1} - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="warn" />
            <param name="LevelMin" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <appender name="error-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${openfireHome}/logs/error.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-7p %10c{1} - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="error" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <root>
        <level value="info" />
        <appender-ref ref="debug-out" />
        <appender-ref ref="info-out" />
        <appender-ref ref="warn-out" />
        <appender-ref ref="error-out" />
    </root>
</log4j:configuration>

这是因为您的根级别:

<root>
        <level value="info" />
        <appender-ref ref="debug-out" />
        <appender-ref ref="info-out" />
        <appender-ref ref="warn-out" />
        <appender-ref ref="error-out" />
</root>

您需要将级别值设置为“debug”

调试<信息<警告<错误

调试是四个测试中最详细的一个


由于您已将其保存在INFO中,因此下面的所有日志级别都可以正确打印。

您需要更改根日志记录器级别。如果您需要所有级别,可以放置以下内容:


以下是log4j中可用的级别:

Level
----- 
ALL   # Everything is written.
TRACE
DEBUG
INFO 
WARN 
ERROR
FATAL
OFF   # Nothing is written.
所有
关闭
都是特殊级别

如果您需要一个包含所有级别的日志,请添加一个未筛选且没有阈值的附加器。e、 g:

<appender name="out" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="${openfireHome}/logs/out.log" />
    <param name="MaxFileSize" value="1024KB"/>
    <param name="MaxBackupIndex" value="5"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-7p %10c{1} - %m%n" />
    </layout>
</appender>

在根记录器中:

<root>
    <level value="all" />
    <appender-ref ref="out" />
    <appender-ref ref="debug-out" />
    <appender-ref ref="info-out" />
    <appender-ref ref="warn-out" />
    <appender-ref ref="error-out" />
</root>


所以我需要改为
而不是
。。。。如果我这样做,我会得到所有其他日志…或者我会错过任何其他的。您不会错过代码中的任何内容。跟踪是最详细的一个。阅读本文了解更多信息:如果我想要一个日志文件同时保存所有基于级别的日志…我必须做的事情。您只在
错误输出
附录中指定了
LevelMin
<root>
    <level value="all" />
    <appender-ref ref="out" />
    <appender-ref ref="debug-out" />
    <appender-ref ref="info-out" />
    <appender-ref ref="warn-out" />
    <appender-ref ref="error-out" />
</root>