log4net appender中支持的日志记录类?

时间:2017-01-18 09:41:27

标签: c# log4net appender log4net-appender

我想构建一个将所有消息发送到中央tcp服务器的appender。但是,我想使用的消息传递框架使用log4net记录器实例本身来支持调试/跟踪。因此,激活调试日志协议化所有即将发送的消息似乎有问题,因为此调试消息本身将创建另一个相同类型的消息。

是否有log4net保护来阻止此网站名称的情况?

2 个答案:

答案 0 :(得分:1)

根据我的理解:您在自定义appender中使用了一个类或框架,它本身使用log4net来编写日志,并且您希望在通过appender传输这些日志时避免循环。

我可以想出两种可以帮助你避免这种情况的方法:

  • 使用LogLog机制
  • 过滤来自框架的消息

使用LogLog

只有您可以访问框架代码:

您可以更改配置获取的代码,无论是使用log4net常规记录器还是LogLog记录器。

记录LogLog的方式如下:

log4net.Util.LogLog.Error(this.GetType(), "your error here");

使用this link了解有关LogLog的更多信息 使用this link阅读如何在运行时启用LogLog。

过滤消息

如果您的框架具有唯一的记录器名称,则可以配置它的日志不会通过您的自定义appender传输。

完全关闭它:

<logger name="Framework.logger.name">
    <level value="OFF" />
</logger>

或者只通过自定义附加程序传输特定记录器

<logger name="specific.logger.name">
    <level value="ALL" />
    <appender-ref ref="MyCustomAppender" />
</logger>

您可以阅读更多here

答案 1 :(得分:0)

您是否自己编写了消息传递框架?如果确实存在跟踪按摩,框架会不断添加跟踪消息,即使您没有自己使用log4net也不会非常有用。我想框架不会添加触发它自己的跟踪消息。您知道的唯一方法是测试框架并查看它是否正常工作。或者发布创建循环的代码。