2012-10-03 70 views
1

我们已经在使用org.apache.log4j的应用程序中进行了广泛的日志记录。我们现在想将这些消息中的一部分分流到新的XML日志文件中(同时继续转到原始日志文件)。将某些org.apache.log4j日志消息分流到特定日志文件

这可能吗?有没有一种方法可以识别这些消息并将它们发送到除常规日志文件之外的特殊位置?

回答

1

我想你可以定义两个文件appender。在一个在封装根级别和其他(如选择适当的包装水平),如下等级:

# Root logger option 
log4j.rootLogger=DEBUG, RootFileAppender 

#Shunted Logger option 
log4j.logger.com.shunted=ERROR,ShuntedFileAppender 


# RootFileAppender - used to log messages in the root.log file. 
log4j.appender.RootFileAppender=org.apache.log4j.FileAppender 
log4j.appender.RootFileAppender.File=root.log 
log4j.appender.RootFileAppender.MaxFileSize=100MB 
log4j.appender.RootFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.RootFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n 


# ShuntedFileAppender - used to log messages in the shunted.log file. 
log4j.appender.ShuntedFileAppender=org.apache.log4j.FileAppender 
log4j.appender.ShuntedFileAppender.File=shunted.log 
log4j.appender.ShuntedFileAppender.MaxFileSize=10MB 
log4j.appender.ShuntedFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.ShuntedFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n 

请注意:您可以定义两个记录选项,不同层次的为好。在上面的例子中,ROOT被定义为DEBUG,而分流被定义为ERROR级别。