2012-09-13 80 views
0

我目前正在嘗試配置log4j以使用2個appender。調試信息應發送至日誌,並且應將錯誤發送至電子郵件地址以便立即處理。多個appender在同一個log4j文件中

暫且,我的屬性文件看起來如下:

log4j.category.myCategory=DEBUG, myLogAppender 
log4j.category.myCategory=ERROR, myEmailAppender 

# myLogAppender is set to be a FileAppender. 
log4j.appender.myLogAppender=org.apache.log4j.RollingFileAppender 
log4j.appender.myLogAppender.File=d:/myLogs.log 
log4j.appender.myLogAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myLogAppender.layout.ConversionPattern=%-4r [%t] %-5p %c - %m%n 
log4j.appender.myLogAppender.MaxFileSize=100KB 
log4j.appender.myLogAppender.MaxBackupIndex=1 

# myEmailAppender is set to be a EmailAppender. 
log4j.appender.myEmailAppender=org.apache.log4j.net.SMTPAppender 
log4j.appender.myEmailAppender.BufferSize=1 
log4j.appender.myEmailAppender.SMTPHost=myHost 
[email protected] 
log4j.appender.myEmailAppender.Subject=Error in the module 
[email protected] 
log4j.appender.myEmailAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myEmailAppender.layout.ConversionPattern=%-4r An error occured in the module. Please refer the myLogs.log on the server to get more details. The message was: [%t] %-5p %c - %m%n 

出於某種原因,log4j的只是發送郵件此配置。只要我註釋掉第二行,log4j就開始追加到日誌文件。

我做錯了什麼?如何獲取調試信息以獲取日誌和錯誤信息?

回答

0

您應該使用某種過濾器,使用有關您任務級別的信息。但是僅使用XML(非屬性文件)配置類型支持使用過濾器。詳情請參閱:http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

+0

感謝您的回答。它現在根據級別登錄到不同的文件。你知道如何按類別過濾嗎? – Jaepetto

+0

什麼意思是「按類別過濾」?在您的示例中,您只使用了一個類別(現在實際上稱爲「記錄器」)。您可以使用另一個記錄器/類別登錄到另一個目標。 –

+0

你是對的我的例子只顯示一個類別。我只注意到框架的其他部分也使用log4j。正如你所說,我添加了一個記錄器,現在一切都很順利。謝謝。 – Jaepetto