我正在使用log4j来管理我的java应用程序中的日志。
<?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="C:/test_reports/infoToolsLog.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>
<level value="info" />
<appender-ref ref="fileAppender" />
</root>
</log4j:configuration>
测试代码:
import org.apache.log4j.Logger;
public class TestLogFile {
private static final Logger LOGGER = Logger.getLogger(TestLogFile.class);
public static void main(String args[]){
System.out.println("In TestLogFIle");
LOGGER.info("in TestLogFile, info statement");
LOGGER.debug("in TestLogFile debug statement");
LOGGER.error("in TestLogfile, error statement");
int i=10;
try {
int j=i/0;
}catch(Exception e){
LOGGER.error("error occured in TestLogfile : " ,e);
}
}
}
日志文件中显示的消息:
2017-06-16 11:34:57 INFO TestLogFile:10 in TestLogFile, info statement
2017-06-16 11:34:57 ERROR TestLogFile:12 in TestLogfile, error statement
2017-06-16 11:34:57 ERROR TestLogFile:18 error occured in TestLogfile :
java.lang.ArithmeticException: / by zero...
当<level value="info" />
时,如何显示调试语句也包含在日志文件中。
在<level value="info" />
答案 0 :(得分:2)
在此处查看不同类型的日志级别:
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html
你必须使用DEBUG来显示致命,错误,警告,信息和调查
<level value="DEBUG" />
同样,你必须使用TRACE来显示致命,错误,警告,信息,调查和追踪
<level value="TRACE" />
答案 1 :(得分:1)
更改
<level value="info" />
到
<level value="debug" />
如果将级别设置为info
,则过滤掉较低的消息(跟踪和调试)。由于您希望查看调试消息,因此需要将级别设置为debug
。