博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Log4j分级别记录日志文件
阅读量:6759 次
发布时间:2019-06-26

本文共 2794 字,大约阅读时间需要 9 分钟。

Log4j分级别记录日志文件

 

         在记录日志的时候通常我们都希望不同级别的日志能够分别记录在不同的日志文件中,然后有一个汇总的日志文件记录所有的日志信息,因为在大多数情况下我们可能只会关注那些Error级别的日志信息。利用log4j去记录这些信息是比较简单的,我们可以配置多个不同的appender,然后每个appender对应的threshold指定需要过滤的不同级别。Appenderthreshold属性默认是为空的,即表示不过滤掉任何级别的日志信息,也就是记录所有级别的日志信息。该属性值如果设为ERROR,则表示只记录ERROR级别以上的日志信息,对于ERROR以下级别的日志信息,如DEBUGINFO等将会忽略。所以如果我们需要按照日志信息级别的不同记录不同的日志文件,我们可以这样设置log4j.properties文件。

#指定默认情况下的日志输出级别为INFO,对应的appenderstdoutinfowarnerrorfatal

log4j.rootLogger=INFO,stdout,info,warn,error,fatal

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

 

log4j.appender.info=org.apache.log4j.DailyRollingFileAppender

log4j.appender.info.layout=org.apache.log4j.PatternLayout

log4j.appender.info.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.info.threshold=INFO

log4j.appender.info.Encoding=UTF-8

log4j.appender.info.File=app.info.log

 

log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender

log4j.appender.warn.layout=org.apache.log4j.PatternLayout

log4j.appender.warn.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.warn.threshold=WARN

log4j.appender.warn.Encoding=UTF-8

log4j.appender.warn.File=app.warn.log

 

log4j.appender.error=org.apache.log4j.DailyRollingFileAppender

log4j.appender.error.layout=org.apache.log4j.PatternLayout

log4j.appender.error.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.error.threshold=ERROR

log4j.appender.error.Encoding=UTF-8

log4j.appender.error.File=app.error.log

 

log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender

log4j.appender.fatal.layout=org.apache.log4j.PatternLayout

log4j.appender.fatal.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.fatal.threshold=FATAL

log4j.appender.fatal.Encoding=UTF-8

log4j.appender.fatal.File=app.fatal.log

 

   在上述配置中log4j.rootLogger是用来指定默认情况下的日志输出级别以及对应的appender的,其值是类似这样的格式:

   <日志输出级别>,<appender1>[,appender2[,append3…]]

 

         Appender中如果指定了对应的日志输出级别则会覆盖rootLogger的配置。像上面的配置对于info那个appender其日志输出级别就是info,哪怕rootLogger的默认日志输出级别改为ERROR,名称为infoappender仍然会记录INFO级别的日志信息。

 

         如果我们希望将com.app.package包下面的所有INFO级别以上的日志都记录在app.package.log文件中,那么我们就可以这样来配置。

 

log4j.logger.com.app.package=INFO,test

 

log4j.appender.test=org.apache.log4j.DailyRollingFileAppender  

log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%d{

yyyy-MM-ddHH\:mm\:ss,SSS}[%p]\=\=\=\=%t\:%c.%M(%L)\r\n\t%m%n\r\n

log4j.appender.test.Encoding=UTF-8

log4j.appender.test.File=app.package.log

 

(注:本文是基于log4j1.2.17所写)

 

 

转载地址:http://aizeo.baihongyu.com/

你可能感兴趣的文章
单例模式-singleton
查看>>
自动布局下的iPhone 6 plus等比例放大,且UITextfield失败关于placeholder的原因
查看>>
利用div实现邮件收件人的输入框
查看>>
我的友情链接
查看>>
单页布局
查看>>
我的友情链接
查看>>
综合布线详细方案设计
查看>>
rhel6.3下安装GCC4.8.1
查看>>
大图片生成缩略图 导致imagecreatefromjpeg 内存崩溃问题
查看>>
我的友情链接
查看>>
手工恢复
查看>>
二 IOC再探
查看>>
一些常用软件的网络端口协议分类介绍
查看>>
机器学习服务器 PredictionIO 脱颖而出
查看>>
mysql不能连接远程mysql服务器
查看>>
Windows 8.1 重复数据删除——概念(一)
查看>>
iptables防火墙高级应用
查看>>
python运维-Socket网络编程
查看>>
yum管理包流程_学习笔记
查看>>
DeltaGrad领跑智能化交易领域 预见收益颠覆基金行业
查看>>