<level value =“info”>在日志文件中显示调试语句

时间:2017-06-16 15:41:16

标签: java

我正在使用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" />

时显示在日志文件中打印的信息,错误和调试语句需要做哪些更改

2 个答案:

答案 0 :(得分:2)

在此处查看不同类型的日志级别:

https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html

此图片可以帮助您更好地理解它:enter image description here

你必须使用DEBUG来显示致命,错误,警告,信息和调查

<level value="DEBUG" />

同样,你必须使用TRACE来显示致命,错误,警告,信息,调查和追踪

<level value="TRACE" />

答案 1 :(得分:1)

更改

<level value="info" />

<level value="debug" />

如果将级别设置为info,则过滤掉较低的消息(跟踪和调试)。由于您希望查看调试消息,因此需要将级别设置为debug