2012-09-13 2 views
0

현재 log4j를 2 개의 appender로 구성하려고합니다. 디버그 정보는 로그에 보내야하며 즉시 처리 할 수 ​​있도록 이메일 주소로 오류를 보내야합니다. 당분간 동일한 log4j 파일에 여러 개의 appender가 있습니다.

내 특성 파일은 다음과 같습니다 어떤 이유

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

관련 문제