【问题标题】:multiple appender in same log4j file同一个 log4j 文件中的多个附加程序
【发布时间】:2012-09-13 19:55:22
【问题描述】:

我目前正在尝试将 log4j 配置为使用 2 个附加程序。调试信息应发送至日志,错误应发送至电子邮件地址以便立即处理。

目前,我的属性文件如下所示:

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

由于某种原因,log4j 仅发送具有此配置的邮件。一旦我注释掉第二行,log4j 就会开始追加到日志文件中。

我做错了什么?如何获取调试信息以获取日志并将错误发送到邮件?

【问题讨论】:

    标签: log4j rollingfileappender smtpappender


    【解决方案1】:

    您应该使用某种过滤器来使用有关您的任务级别的信息。但是只有 XML(不是属性文件)类型的配置支持使用过滤器。详情见:http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

    【讨论】:

    • 感谢您的回答。它现在根据级别登录到不同的文件。你知道如何按类别过滤吗?
    • “按类别过滤”是什么意思?在您的示例中,您只使用了一个类别(现在它实际上称为“记录器”)。您可以使用更多的记录器/类别来记录到另一个目的地。
    • 你说得对,我的例子只显示了一个类别。我刚刚注意到框架的其他部分也在使用 log4j。正如你所说,我添加了一个记录器,现在一切都很顺利。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2013-05-29
    • 2012-08-12
    相关资源
    最近更新 更多