无法在文件中打印调试语句

时间:2017-06-16 04:31:35

标签: java

我在我的java应用程序中使用log4j来记录消息。log4j-1.2.17.jar是使用的jar文件。以下是日志文件。

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

        <appender name="console" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out" />
            <param name="Threshold" value="debug" />
            <layout class="org.apache.log4j.PatternLayout">
                 <param name="ConversionPattern" value="%d %-5p %c{1}:%L %m %n" />
            </layout>
        </appender>

        <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
            <param name="Threshold" value="INFO" />
            <param name="Threshold" value="debug" />
            <param name="maxFileSize" value="10MB" />
            <param name="maxBackupIndex" value="10" />
            <param name="file" value="D/logs/projectLog.log"/>
            <param name="append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %m %n" />
            </layout>
        </appender>

    <root>
        <priority value="info"></priority>
        <appender-ref ref="fileAppender" />
    </root>

</log4j:configuration>

我在我的应用程序中使用上面的日志文件。日志文件已成功生成,但在日志文件中,调试消息未被打印。

在我的java类中,下面是我所包含的语句。

LOGGER.info("In TestMVCController, logger info");
System.out.println("is debug enabled" +  LOGGER.isDebugEnabled());//always false even when server is started in debug mode
LOGGER.debug("In TestMVCController, logger debug");
LOGGER.error("In TestMVCController, logger errror");

在我的日志文件中,我只能看到正在打印的信息和错误消息。在哪种情况下打印调试语句以及如何使我的日志语句打印调试语句?任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

将root的优先级值从“info”更改为“debug”:

<root>
    <priority value="debug"></priority>
    <appender-ref ref="fileAppender" />
</root>

这将配置根记录器以将“DEBUG”或更高级别的日志消息发送到appender“fileAppender”。然后,“fileAppender”可以设置它想要记录的阈值(DEBUG,INFO,WARNING等)。

注意:appender的“threshold”参数是可选的。如果省略它,appender将记录根记录器定义的级别。如果有多个appender,则可以使用“threshold”。例如:用于控制台appender的DEBUG和用于文件追加器的INFO。