簡體   English   中英

僅在使用 log4j 時記錄致命和錯誤消息

[英]Only logging fatal and error messages while using log4j

I am new to log4j and trying to use log4j programmatically instead of using log4j.xml OR log4j.properties file.

但是當我運行代碼時,它只記錄致命和錯誤消息並跳過其他消息。

我試過改變“rootlogger.setLevel(Level.DEBUG);” 到“rootlogger.setLevel(Level.All);” 但它給出了相同的 output。

有人可以在這里幫忙嗎?

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");
    }
}

output:

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

19:07:58.006 [main] ERROR log4jExample.ProgrammaticLog4jExample - 這是錯誤消息

output 圖片:

上述代碼的輸出

我在我的項目類路徑中為 log4j 使用下面的 jar 文件:

項目中使用的 log4j Api

啊哈……做了一些實驗后,我得到了答案。

添加了“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");
    }
}

Output 圖片:

輸出圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM