log4j日志配置文件配置模板与解释

首先要明白的一点,也是最重要的一点:

        log4j常用的有四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。什么意思呢,或者说log4j的日志级别的优先级是什么意思呢?打个比方,如果你配置了INFO级别,那么程序中所有的DEBUG(logger.debug(xxx))级别的日志信息将不被打印出来,只会打印高于或等于所设置级别的日志,在这里因为配置了INFO,那么将只会打印ERROR、WARN、INFO级别的日志到你配置的输出中。 

下面是一个配置模板:

log4j.rootLogger=INFO,stdout,e,w,i

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=[lzzcms]%d{yyyy-MM-dd HH:mm:ss} %-5p [%20c]%L\u884c: %m %n

log4j.appender.i = org.apache.log4j.DailyRollingFileAppender
log4j.appender.i.layout = org.apache.log4j.PatternLayout
log4j.appender.i.File = ${user.home}/lzzcms/log/lzzcms_info.log
log4j.appender.i.Threshold = INFO   
log4j.appender.i.layout.ConversionPattern=[lzzcms]%d{yyyy-MM-dd HH:mm:ss} %-5p [%20c]%L\u884c: %m %n

log4j.appender.w = org.apache.log4j.DailyRollingFileAppender
log4j.appender.w.layout = org.apache.log4j.PatternLayout
log4j.appender.w.File = ${user.home}/lzzcms/log/lzzcms_warn.log
log4j.appender.w.Threshold = WARN
log4j.appender.w.layout.ConversionPattern=[lzzcms]%d{yyyy-MM-dd HH:mm:ss} %-5p [%20c]%L\u884c: %m %n

log4j.appender.e = org.apache.log4j.DailyRollingFileAppender
log4j.appender.e.layout = org.apache.log4j.PatternLayout
log4j.appender.e.File = ${user.home}/lzzcms/log/lzzcms_error.log
log4j.appender.e.Threshold = ERROR
log4j.appender.e.layout.ConversionPattern=[lzzcms]%d{yyyy-MM-dd HH:mm:ss} %-5p [%20c]%L\u884c: %m %n


log4j.logger.cn.zhao.dao =DEBUG

解释:

log4j.rootLogger=INFO,stdout,e,w,i,指定程序的所有包使用log4j时打印的日志级别,这里配置为INFO,表示所有包里面低于INFO级别的日志将不被打印,即DEBUG级别不被打印,如果想指定某个包下面的debug级别打印,可以使用log4j.logger.cn.zhao.dao =DEBUG的配置方式。INFO后边的stdout,e,w,i是自己随便起的名字,如果你愿意,可以叫成abc,efg都没有关系,只是要与后边的对应起来。

log4j.appender用于配置你定义的名字,比如log4j.appender.i。

log4j.appender.x.Threshold=WARN:表示进入x所指定的文件的日志级别最少是WARN,那么这里低于warn级别的日志将不被输出。

log4j.appender.x.layout.ConversionPattern用于定义日志的输出格式,%d是时间,后边的{yyyy-MM-dd HH:mm:ss}定义了时间的格式,形如“2018-01-30 21:57:57”;

%-5p:p的意思是priority,优先级的意思,中间的5表示左对齐,因为日志级别ERROR、WARN、INFO、DEBUG,有的是5个字母的,有的是4个字母的,如果直接写%p就会对不齐,%-5p的意思是日志级别输出左对齐,右边以空格填充,%5p的意思是日志级别输出右对齐,左边以空格填充。

%20c:c即class,表示输出全类名,包含包名,如果全类名不足20个,就用空格填补。

%L:L表示line,行的意思,打印出在行

%m:即message,输出代码中指定的消息,即logger.error("添加产品出现错误",e)里面的信息“添加产品出现错误”

%n:输出一个回车换行符

上边的都是常用的解释,经过了上边的配置,比如我有下面一段代码:

@RequestMapping("/contentManage")
	public String contentManage(){
		logger.info("info级别");
		logger.warn("warn级别");
		logger.error("error级别");
		return "content/contentManage";
	}

当请求这个路径时,对应的输出分别是:

stdout控制台输出:

image.png

e的输出:

image.png

w的输出:

image.png

i的输出:

image.png

因为日志级别:error>warn>info>debug,又因为只会输出大于等于自己的级别的日志,所以又上边的结果,正好符合了我们上边的分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值