log4j配置文件详解

配置文件主要包含三部分:日志等级、输出地址、输出格式

最简单配置文件如下

log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

日志等级有7级,主要用到的是如下四个级别:ERROR、WARN、INFO、DEBUG,且大小写不敏感,使用如下

log4j.rootLogger=info

输出地址主要有5个:控制台ConsoleAppender,单个文件FileAppender,每天文件DailyRollingFileAppender,指定大小文件RollingFileAppender,流WriterAppender

使用的时候需要配置两个地方

#stdout为地址名称可以任意非关键字字符串
log4j.rootLogger=info, stdout
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.sss} %5p [%c] - %m%n

输出格式用的最多的是自定义patternLayout,所有格式包括4个:表格HTMLLayout、自定义PatternLayout、基础SimpleLayout、详细TTCCLayout,如下

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-mm-dd hh:mm:ss.sss} %5p [%c] - %m%n

【扩展】

也可以根据不同包控制日志级别

log4j.logger.com.ifre=info
log4j.logger.com.ifre.test=debug

日志输出到文件

### 输出DEBUG级别以上的日志到项目下/logs/log.log
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ./logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-mm-dd hh:mm:ss.sss}  [ %t:%r ] - [ %p ] [ %c ]  %m%n

错误日志另外文件

### 输出ERROR 级别以上的日志到项目下/logs/error.log
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =./logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-mm-dd hh:mm:ss.sss}  [ %t:%r ] - [ %p ] [ %c ] %m%n

自定义的输出格式参数配置如下

%m   输出代码中指定的消息
%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
%r   输出自应用启动到输出该log信息耗费的毫秒数 
%c   输出所属的类目,通常就是所在类的全名 
%t   输出产生该日志事件的线程名 
%n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-mm-dd hh:mm:ss.sss},输出类似:2018-1-18 12:00:00.000  
%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值