首页 文章

log4net appender中支持的日志类?

提问于
浏览
0

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

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

2 回答

  • 1

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

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

    • 使用 LogLog 机制

    • 过滤来自框架的消息


    使用LogLog

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

    您可以通过配置更改将使用log4net常规 Logger 或 LogLog logger获得的代码 .

    通过 LogLog 记录就像这样:

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

    使用this link可以阅读有关LogLog的更多信息 .
    使用this link可以阅读运行时如何启用LogLog .


    过滤消息

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

    通过完全关闭它:

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

    或者通过自定义appender仅传输特定 Logger

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

    你可以阅读更多here .

  • 0

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

相关问题