log4j 相关输出配置

日志级别

log4j 官网推荐使用如下几种,级别从高到低排列java

Level 描述
ERROR 错误事件可能仍然容许应用程序继续运行
WARN 指定具备潜在危害的状况
INFO 指定可以突出在粗粒度级别的应用程序运行状况的信息的消息
DEBUG 指定细粒度信息事件是最有用的应用程序调试

Appender级别

org.apache.log4j.ConsoleAppender(输出到控制台),
org.apache.log4j.FileAppender(输出到文件),
org.apache.log4j.DailyRollingFileAppender(天天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)复制代码

日志输出格式(layout)

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(能够灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)复制代码

日志打印格式

%m   输出代码中指定的消息
%p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
%r   输出自应用启动到输出该log信息耗费的毫秒数 
%c   输出所属的类目,一般就是所在类的全名 
%t   输出产生该日志事件的线程名 
%n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
%d   输出日志时间点的日期或时间,默认格式为ISO8601,也能够在其后指定格式,
     好比:%d{yyy MMM dd HH:mm:ss , SSS},输出相似:2002年10月18日 22:10:28,921 
%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
     举例:Testlog4.main(TestLog4.java: 10 )复制代码

将不一样级别的log输出到用户自定义的文件中

咱们工做中大多数是将全部的日志输出到一个文件中,由于在生产环境中若是不一样级别的日志散落在不一样的文件中,出个错那你就使劲找吧,可是log4j仍是给咱们提供了这个功能,如下我会给出具体的log4j.properties配置文件的详细内容,举例子出不一样的场景.apache

log4j.propertiesbash

#将root级别设置成INFO,并输出到mainLog对应的Append文件中
log4j.rootLogger=INFO, mainLog ,stdout
#将DEBUG级别的日志输出到自定义的Appender中,这里mainLog的级别变成了DEBUG,他会覆盖
#以前的INFO
log4j.logger.log.DetailAppender=DEBUG, mainLog, detailLog
#将某个文件夹的日志级别设置成INFO,并追加到对应的xxAppender中
log4j.logger.com.csjd.xxx=INFO,xx,x

# 将stdout设置成控制台输出 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold=DEBUG # 输出DEBUG及以上级别的日志
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n

# 天天生成一个新的文件
log4j.appender.mainLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.mainLog.File=${SA_LOG}/quickfix/mdccdh-info.log
log4j.appender.mainLog.DatePattern = '_'yyyy-MM-dd
log4j.appender.mainLog.Append=true
log4j.appender.stdout.Threshold=INFO # 输出INFO及以上级别的日志
#log4j.appender.mainLog.MaxBackupIndex=30
log4j.appender.mainLog.layout=org.apache.log4j.PatternLayout
log4j.appender.mainLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n复制代码

tips:以上使用的${SA_LOG}为系统环境变量,log4j能够读取环境变量配置,前提是这个变量得存在,否则日志文件不会生成哦,log4j输出日志只会输出比他级别高的日志,不会向下.app

相关文章
相关标签/搜索