您的位置:首页 > 其它

根据需要为不同的类设置不同的输出日志名称及日志格式

2016-07-19 17:09 239 查看
web应用的日志不一定全部都要打到catalina.out文件中,可以根据需求,将不同的日志输出到不同的文件中,所以可以在log4j.properties日志文件中配置多个输出日志的模式,每个模式都会有一个名称,比如如下的名称“web”

1. 一般在类中通过如下方式获取LOG对象
protected static final Log LOG = LogFactory.getLog("web");
参数web实际就是一个特定日志的标示,即一个特定日志打印的名称

它的具体配置在log4j.properties文件中,具体配置如下

2. log4j文件的配置

log4j.logger.<strong>web</strong>=INFO,WebLog
log4j.appender.WebLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.WebLog.Threshold=INFO
log4j.appender.WebLog.File=${catalina.home}/logs/bk_web.log
log4j.appender.WebLog.layout=org.apache.log4j.PatternLayout
log4j.appender.WebLog.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} %m %n
上述log4j.logger.web中的web其实就跟上述的web对应,这一段配置就说明了名称为web的日志要打印到${catalina.home}/logs/bk_web.log文件中,

log4j.appender.WebLog.layout.ConversionPattern的具体配置说明如下:
%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 )

ConversionPattern实际配置的就是在使用打印日志的语句,比如如下语句打印日志的时候
LOG.error("No TasksForRev to assign to user:" + this.getUserId())
在这行日志的开头打印一些时间信息等,比如根据如上配置,打印出来的结果就是如下:

ERROR 2016-07-19 16:51:47 No TasksForRev to assign to user:374075382
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: