【问题标题】:Log4j Logging Level in javajava中的Log4j日志记录级别
【发布时间】:2016-08-23 14:15:22
【问题描述】:

假设我在 log4j.properties 中有以下行

log4j.rootLogger=DEBUG,file
..
..

我的 java 应用程序是否单独使用 log.debug() 捕获所有日志记录?

我的 Java 应用程序是否也捕获所有带有调试、信息、警告和错误的日志记录

如果我只需要 INFO 和 ERROR,我需要做什么?

【问题讨论】:

标签: java


【解决方案1】:

真正理解的最好方法是亲眼看看。

LogLevelDemo.java

public class LogLevelDemo {

    private static final Logger LOG = Logger.getLogger(LogLevelDemo.class);

    public void log() {
        LOG.fatal("This is fatal.");
        LOG.error("This is error.");
        LOG.warn("This is warn.");
        LOG.info("This is info.");
        LOG.debug("This is debug.");
        LOG.trace("This is trace.");
    }

    public static void main(String[] args) {
        LogLevelDemo lld = new LogLevelDemo();
        lld.log();
    }

}

log4j.properties

log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

然后将log4j.rootLogger级别属性切换到你要测试的级别。

这些设置打印以下内容:

0    [main] FATAL demo.log4j.LogLevelDemo  - This is fatal.
0    [main] ERROR demo.log4j.LogLevelDemo  - This is error.
0    [main] WARN  demo.log4j.LogLevelDemo  - This is warn.
0    [main] INFO  demo.log4j.LogLevelDemo  - This is info.

因此没有调试或跟踪语句,等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多