我们已经使用org.apache.log4j在我们的应用程序中进行了大量的日志记录。我们现在想要将其中一些消息分流到新的XML日志文件中(同时继续转到原始日志文件)。
这可能吗?除了常规日志文件之外,有没有办法可以识别这些消息并将它们发送到特殊位置?
答案 0 :(得分:1)
我认为你可以定义两个文件追加器。一个在根级别,另一个在包中(根据需要选择包级别)级别如下:
# 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
级别。