2012-10-03 68 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級別。