Logging 关于loggin策略的建议-如何根据异常类型将日志信息发送到多个目的地

Logging 关于loggin策略的建议-如何根据异常类型将日志信息发送到多个目的地,logging,exception-handling,log4j,log4net,Logging,Exception Handling,Log4j,Log4net,我正在寻找一个log4net/log4j配置示例,它允许将不同类型的错误记录到不同的目的地 例如: 如果发生服务错误(由于某些外部服务不可用),我需要通知该服务的管理员,可能还有我们的开发人员或经理 如果发生内部错误(由于我们的应用程序出现故障),我希望通知应用程序开发人员(而不是管理员或经理),并提供足够的信息来解决该问题 请分享你的经验 在log4net下载中有一个示例扩展,展示了如何向log4net添加自定义跟踪级别 查看extensions\net\1.0\log4net.Ext.Tra

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

例如:

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

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


请分享你的经验

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

查看extensions\net\1.0\log4net.Ext.Trace

您可以为服务创建自定义级别,为内部服务创建自定义级别

在代码中使用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>

Tnx为您解答!我已经看过这个例子了,看起来工作量很大。。我在寻找一个更简单的解决方案。也许可以用过滤器来实现这一点?我可以在appender上设置字符串匹配过滤器,并在日志消息中使用“SERVICE”和“INTERNAL”标志吗?