Log4j官方的appender给出了一下几种实现
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
实际开发我们使用第1,第3和第4种实现;
假如日志数据量不是很大,我们可以用DailyRollingFileAppender 每天产生一个日志,方便查看;
假如日志数据量很大,我们一般用RollingFileAppender,固定尺寸的日志,假如超过了 就产生一个新的文件;
我们这里给出一些实例;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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 = C://log2.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 = C://log3.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 = C://log4.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 |
测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package com.open1111; import org.apache.log4j.Logger; public class Test { private static Logger logger=Logger.getLogger(Test. class ); // 获取logger实例 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++; } } } |
这里有两个新的配置项解释下:
MaxFileSize 是日志文件的最大尺寸;根据实际需求来定 10KB 100KB也行
MaxBackupIndex是日志文件的个数,假如超过了,则覆盖,主要考虑到的是硬盘的容量问题;根据实际需求来定 比如 100 500;
这里给下日志文件的效果:
DailyRollingFileAppender 效果:
RollingFileAppender 效果: