我在我的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");
在我的日志文件中,我只能看到正在打印的信息和错误消息。在哪种情况下打印调试语句以及如何使我的日志语句打印调试语句?任何建议都会有所帮助。
答案 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。