有关日志记录策略的建议 - 如何根据异常类型将日志记录信息发送到多个目标

时间:2011-12-15 08:41:21

标签: logging exception-handling log4j log4net

我正在寻找一个示例log4net / log4j配置,它允许将不同类型的错误记录到不同的目的地。

例如:

如果发生服务错误(由于某些外部服务不可用),我需要通知该服务的管理员,也可能是我们的开发人员或管理人员。

如果发生内部错误(由于我们的应用程序出现故障),我希望应用程序开发人员得到通知(但不是管理员或经理),并提供足够的信息来解决该问题。

请分享您的经验。

1 个答案:

答案 0 :(得分:0)

log4net下载中有一个示例扩展,显示如何向log4net添加自定义跟踪级别。

查看扩展名\ net \ 1.0 \ log4net.Ext.Trace

您可以为SERVICE创建自定义级别,为INTERNAL创建自定义级别。

在您的代码中,您将使用Log.SERVICE()和Log.INTERNAL()

您的配置如下:

<appender name="EmailAppender" type="log4net.Appender.SmtpAppender">
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="SERVICE" />
  </evaluator>

  <subject value="Error in the service" />
  <to value="service_admin@yourcompany.com" />
</appender>
<appender name="EmailAppender" type="log4net.Appender.SmtpAppender">
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="INTERNAL" />
  </evaluator>

  <subject value="Error in the internals" />
  <to value="internal_admin@yourcompany.com" />
</appender>