欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Log4j appender输出类型配置

程序员文章站 2022-04-26 08:45:52
...
1. Log4j appender输出类型配置

Log4j官方的appender给出了一下几种实现
org.apache.log4j.ConsoleAppender(控制台,常用);
org.apache.log4j.FileAppender(文件);
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件,常用与日志数量不大);
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件,常用日志数量很大);
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方);

MaxFileSize是日志文件的最大尺寸;
MaxBackupIndex是日志文件的个数,假如超过了,则覆盖,主要考虑到的是硬盘的容量问题;


log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile
    
#Console  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    
#File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = E://log4j-File-log.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
 
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = E://log4j-DailyRollingFile-log.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
 
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = E://log4j-RollingFile-log.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n


package com.open1111;
import org.apache.log4j.Logger;
public class Test {
    private static Logger logger = Logger.getLogger(Test.class);
    public static void main(String[] args) {
        logger.info("普通Info信息");
        logger.debug("调试debug信息");
        logger.error("报错error信息");
        logger.warn("警告warn信息");
        logger.fatal("严重错误fatal信息");
        logger.error("报错信息", new IllegalArgumentException("非法参数"));
        int i = 0;
        while (i < 10000) {
            logger.debug(" RollingFile 调试debug信息");
            logger.debug(" RollingFile 调试debug信息");
            logger.debug(" RollingFile 调试debug信息");
            logger.debug(" RollingFile 调试debug信息");
            logger.debug(" RollingFile 调试debug信息");
            i++;
        }
    }
}


运行结果:

1. 控制台console

2018-12-11 21:30:51,899 [main] INFO  [com.open1111.Test] - 普通Info信息
2018-12-11 21:30:51,900 [main] DEBUG [com.open1111.Test] - 调试debug信息
2018-12-11 21:30:51,900 [main] ERROR [com.open1111.Test] - 报错error信息
2018-12-11 21:30:51,901 [main] WARN  [com.open1111.Test] - 警告warn信息
2018-12-11 21:30:51,901 [main] FATAL [com.open1111.Test] - 严重错误fatal信息
2018-12-11 21:30:51,902 [main] ERROR [com.open1111.Test] - 报错信息
java.lang.IllegalArgumentException: 非法参数
    at com.open1111.Test.main(Test.java:14)
2018-12-11 21:30:51,904 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
...

2. file文件 E://log4j-File-log.log

2018-12-11 21:30:51,899 [main] INFO  [com.open1111.Test] - 普通Info信息
2018-12-11 21:30:51,900 [main] DEBUG [com.open1111.Test] - 调试debug信息
2018-12-11 21:30:51,900 [main] ERROR [com.open1111.Test] - 报错error信息
2018-12-11 21:30:51,901 [main] WARN  [com.open1111.Test] - 警告warn信息
2018-12-11 21:30:51,901 [main] FATAL [com.open1111.Test] - 严重错误fatal信息
2018-12-11 21:30:51,902 [main] ERROR [com.open1111.Test] - 报错信息
java.lang.IllegalArgumentException: 非法参数
    at com.open1111.Test.main(Test.java:14)
2018-12-11 21:30:51,904 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
...

3. DailyRollingFile每日文件 E://log4j-DailyRollingFile-log.log

2018-12-11 21:30:51,899 [main] INFO  [com.open1111.Test] - 普通Info信息
2018-12-11 21:30:51,900 [main] DEBUG [com.open1111.Test] - 调试debug信息
2018-12-11 21:30:51,900 [main] ERROR [com.open1111.Test] - 报错error信息
2018-12-11 21:30:51,901 [main] WARN  [com.open1111.Test] - 警告warn信息
2018-12-11 21:30:51,901 [main] FATAL [com.open1111.Test] - 严重错误fatal信息
2018-12-11 21:30:51,902 [main] ERROR [com.open1111.Test] - 报错信息
java.lang.IllegalArgumentException: 非法参数
    at com.open1111.Test.main(Test.java:14)
2018-12-11 21:30:51,904 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
...

4. 4.RollingFile大小文件 E://log4j-RollingFile-log.log
log4j-RollingFile-log.log
log4j-RollingFile-log.log.1
log4j-RollingFile-log.log.2
log4j-RollingFile-log.log.3
每一个都相同,只有最后的几条,最初的已经被覆盖了。

2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,801 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,802 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
2018-12-11 21:31:07,802 [main] DEBUG [com.open1111.Test] -  RollingFile 调试debug信息
相关标签: log4j