【问题标题】:Only logging fatal and error messages while using log4j仅在使用 log4j 时记录致命和错误消息
【发布时间】:2021-02-05 22:53:12
【问题描述】:

我是 log4j 的新手,并尝试以编程方式使用 log4j,而不是使用 log4j.xml 或 log4j.properties 文件。

但是当我运行代码时,它只记录致命和错误消息并跳过其他消息。

我已尝试更改“rootlogger.setLevel(Level.DEBUG);”到“rootlogger.setLevel(Level.All);”但它给出了相同的输出。

有人可以帮忙吗?

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.ConsoleAppender;

public class ProgrammaticLog4jExample {
    
    private static final Logger logger = Logger.getLogger(ProgrammaticLog4jExample.class);

    public static void main(String[] args) {
        // creates pattern layout
        String conversionPattern = "%-7p %d [%t] %c %x - %m%n";
        PatternLayout layout = new PatternLayout(conversionPattern);
        
        // creates console appender
        ConsoleAppender consoleAppender = new ConsoleAppender();
        consoleAppender.setLayout(layout);
        consoleAppender.activateOptions();
        
        // configure the root logger
        Logger rootlogger = Logger.getRootLogger();
        rootlogger.setLevel(Level.DEBUG);
        rootlogger.addAppender(consoleAppender);
                
        
        // creates a custom logger and messages
        logger.debug("this is a debug log message");
        logger.info("this is a information message");
        logger.warn("this is a warning message");
        logger.fatal("this is the fatal message");
        logger.error("This is the error message");
    }
}

输出:

19:07:58.003 [main] FATAL log4jExample.ProgrammaticLog4jExample - 这是致命消息

19:07:58.006 [main] ERROR log4jExample.ProgrammaticLog4jExample - 这是错误消息

输出图像:

我在我的项目类路径中为 log4j 使用以下 jar 文件:

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    啊哈...做了一些实验后,我得到了答案。

    添加了“logger.setLevel(Level.DEBUG);”我现在可以获取所有日志。 :-)

    import org.apache.log4j.ConsoleAppender;
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PatternLayout;
    
       
    public class ProgrammaticLog4jExample {
        
        private static final Logger logger = Logger.getLogger(ProgrammaticLog4jExample.class);
    
        public static void main(String[] args) {
            // creates pattern layout
            String conversionPattern = "%-7p %d [%t] %c %x - %m%n";
            PatternLayout layout = new PatternLayout(conversionPattern);
            
            // creates console appender
            ConsoleAppender consoleAppender = new ConsoleAppender();
            consoleAppender.setLayout(layout);
            consoleAppender.activateOptions();
            
            // configure the root logger
            Logger rootlogger = Logger.getRootLogger();
            rootlogger.setLevel(Level.DEBUG);
            rootlogger.addAppender(consoleAppender);
                    
            logger.setLevel(Level.DEBUG);
            // creates a custom logger and messages
            // Logger logger = Logger.getLogger(ProgrammaticLog4jExample.class.getName());
            logger.debug("this is a debug log message");
            logger.info("this is a information message");
            logger.warn("this is a warning message");
            logger.fatal("this is the fatal message");
            logger.error("This is the error message");
        }
    }
    

    输出图像:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      相关资源
      最近更新 更多