Log4j框架配置文件

                                   Log4j框架配置文件

1 Log4j的配置文件分类

Log4j支持两种配置文件格式:一中是以log4j.properties ,另一种是 log4j.xml

2 Log4j的配置文件例子

##自定义日志的输出级别

log4j.rootLogger=WARN, stdout

##自定义日志
log4j.logger.access=WARN, access

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n

### 输出到日志文件 ###
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = logs/test.log
log4j.appender.R.Append = true
log4j.appender.R.Threshold = DEBUG
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n


### 业务日志###
log4j.appender.access = org.apache.log4j.FileAppender
log4j.appender.access.File =  logs/test.access.log
log4j.appender.access.Append = true
log4j.appender.access.layout = org.apache.log4j.PatternLayout
log4j.appender.access.layout.ConversionPattern = %m%n

3 Log4j的配置文件解析

(1)配置rootLogger

最重要就是第一个log4j.rootLogger,指定log4j日志的输出界别(目的地)

log4j.rootLogger=INFO,stdout,file意思为:日志可以输INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file

常见的日志输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命错误)

日志输出的顺序:和日志输出级别一致,即配置为一个级别,输出的内容只能是该级别及其以上级别的信息, INFO(输出的包括 INFO WARN ERROR FATAL),ERROR(ERROR FATAL), 所以,一般情况下:在开发,测试环境中,日志的级别为DEBUG;在生产环境中,日志级别为INFO

(2)配置日志信息输出目的地Appender

输出目的地:日志输出的各种各样的目的地,都是通过Appender来进行实现追加的,我们在appender中看到的PatternLayout的格式如下:

%m   输出代码中指定的消息

%n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%p   输出优先级,即日志级别:DEBUG,INFO,WARN,ERROR,FATAL

%r   输出自应用启动到输出该log信息耗费的毫秒数

%c   输出所属的类目,通常就是所在类的全名

%t   输出产生该日志事件的线程名

%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921

%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

ConsoleAppender,FileAppender,DailyRollingFileAppender,RollingFileAppender,WriterAppender(将日志信息以流格式发送到任意指定的地方)

ConsoleAppender(控制台) Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
Target=System.err:默认情况下是:System.out,指定输出控制台
DailyRollingFileAppender(每天产生一个日志文件) Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
DatePattern=”.”yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。 
当然也可以指定按月、周、天、时和分。即对应的格式如下: 
1)”.”yyyy-MM: 每月 
2)”.”yyyy-ww: 每周 
3)”.”yyyy-MM-dd: 每天 
4)”.”yyyy-MM-dd-a: 每天两次 
5)”.”yyyy-MM-dd-HH: 每小时 
6)”.”yyyy-MM-dd-HH-mm: 每分钟
FileAppender(文件) Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
MaxFileSize=100KB:后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。 
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
 
   
发布了76 篇原创文章 · 获赞 9 · 访问量 5489

猜你喜欢

转载自blog.csdn.net/weixin_43786255/article/details/101469879