1

我们已经使用 org.apache.log4j 在我们的应用程序中进行了大量日志记录。我们现在想要将其中一些消息分流到一个新的 XML 日志文件(同时继续转到原始日志文件)。

这可能吗?除了常规日志文件之外,我们有没有办法识别这些消息并将它们发送到特殊的地方?

4

1 回答 1

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级别。

于 2012-10-03T16:25:44.900 回答