I'm currently trying to configure log4j to use 2 appenders. Debug info should be send to a log and errors should be sent to an email address for immediate processing.

For the time being, my properties file looks as follow:

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
log4j.appender.myEmailAppender.From=error@mydomain.com
log4j.appender.myEmailAppender.Subject=Error in the module
log4j.appender.myEmailAppender.To=error@mydomain.com
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

For some reason, log4j only sends mail with this configuration. As soon as I comment out the second line, log4j starts appending to the log file.

What did I do wrong? How can I get debug information to get to a log and errors to mail?

有帮助吗?

解决方案

You should use some kind of filter that uses information about the level for your task. But using filters is only supported by XML (not properties file) type of configuration. For details see: http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top