我在我的java应用程序中使用log4j
来记录消息。使用的 jar 文件log4j-1.2.17.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");
在我的日志文件中,我只能看到正在打印的信息和错误消息。调试语句在哪种情况下打印,如何使日志语句打印调试语句?任何建议都会有所帮助。
将根的优先级值从"info"更改为"debug":
<root>
<priority value="debug"></priority>
<appender-ref ref="fileAppender" />
</root>
这会将根记录器配置为将"DEBUG"或更高级别日志消息发送到追加器"fileAppender"。 然后,"fileAppender"可以设置它想要记录的阈值(调试,信息,警告等(。
注意:追加器的"阈值"参数是可选的。 如果省略它,追加程序将在根记录器定义的级别进行记录。 如果有多个追加器,则可以使用"阈值"。 例如:控制台追加器的 DEBUG 和文件追加器的 INFO。