您的位置:首页 > 其它

log4j配置文件详解

2018-01-11 21:47 239 查看
配置文件主要包含三部分:日志等级、输出地址、输出格式

最简单配置文件如下

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 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: