📜  Log4j XML

📅  最后修改于: 2021-01-06 09:06:54             🧑  作者: Mango

Log4j XML

两个最重要的配置选项是使用log4j.xml配置或使用log4j.properties配置。在本节中,我们将看到如何使用XML配置log4j。我们也可以使用属性文件,但是现在优先使用一天的xml而不是属性文件。

这是主要配置文件,其中包含log4j使用的所有运行时配置。该文件将包含log4j附加程序信息,日志级别信息和文件附加程序的输出文件名。

在“ Log4j示例”部分中,我们解释了如何使用属性文件配置log4j。在这里,除了我们使用XML配置文件之外,所有内容都保持不变。

以下代码显示了相应的log4j.xml文件:





    
        
        
        
    

    
        
        
    


要使用xml文件配置log4j,我们使用DOMConfigurator.configure()方法。

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

public class HelloWorld {

    static Logger logger = Logger.getLogger(HelloWorld.class);
    
    public static void main(String[] args) {
        DOMConfigurator.configure("log4j.xml");
        logger.debug("Sample debug message");
        logger.info("Sample info message");
        logger.warn("Sample warn message");
        logger.error("Sample error message");
        logger.fatal("Sample fatal message");
    }
}

输出:

log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [DEBUG].
log4j: root level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: Adding appender named [console] to category [root].
2019-09-05 18:07:45 DEBUG HelloWorld:10 - Sample debug message
2019-09-05 18:07:45 INFO  HelloWorld:11 - Sample info message
2019-09-05 18:07:45 WARN  HelloWorld:12 - Sample warn message
2019-09-05 18:07:45 ERROR HelloWorld:13 - Sample error message
2019-09-05 18:07:45 FATAL HelloWorld:14 - Sample fatal message

上面的示例用于控制台输出。如果要在文件上获取输出,则只需更改log4j.xml文件。

输出到文件:

下面的log4j.xml将日志记录重定向到文件。





    
       
       
       
       
       
       
        
       
    

    
        
        
    


输出到控制台和文件:

甚至您也可以在控制台上获得输出以及文件。下面的log4j.xml配置文件将输出重定向到控制台和文件。





    
        
        
        
    

    
        
        
        
        
        
        
        
    

    
        
        
        
    


输出:

log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Level value for root is  [DEBUG].
log4j: root level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: Adding appender named [console] to category [root].
log4j: Class name: [org.apache.log4j.RollingFileAppender]
log4j: Setting property [append] to [false].
log4j: Setting property [maxFileSize] to [10MB].
log4j: Setting property [maxBackupIndex] to [10].
log4j: Setting property [file] to [/logs/myStruts1App.log].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n].
log4j: setFile called: /logs/myStruts1App.log, false
log4j: setFile ended
log4j: Adding appender named [file] to category [root].
2019-09-05 18:26:30 DEBUG HelloWorld:10 - Sample debug message
2019-09-05 18:26:30 INFO  HelloWorld:11 - Sample info message
2019-09-05 18:26:30 WARN  HelloWorld:12 - Sample warn message
2019-09-05 18:26:30 ERROR HelloWorld:13 - Sample error message
2019-09-05 18:26:30 FATAL HelloWorld:14 - Sample fatal message