【问题标题】:Using Logger Filter with Not Equal condition Log4net使用不等于条件 Log4net 的 Logger Filter
【发布时间】:2011-02-04 09:30:41
【问题描述】:

我在我的 c# 应用程序中使用 log4net 我有不同的记录器,它们在我的单个日志文件中插入文本行。

但是现在我想添加一个新的记录器,它不应该在同一个文件中发布日志条目,而是我应该登录不同的文件,所以我配置了一个新的 fileAppender,在做了我在网上找到的任何事情之后,我能够创建我的新记录器有一个不同的文件,但它在第一个日志文件中也回显了相同的值。

如果有人知道 LogFilters 的使用,那么我可以在之前配置的 appender 中添加“Logger New logger”匹配项。

问候 穆巴沙尔

【问题讨论】:

    标签: log4net


    【解决方案1】:

    假设您有这样的“特殊”记录器:

    ILog logger1 = LogManager.GetLogger("namespace.special_class");
    

    那么你可以如下配置log4net:

    <logger name="namespace.special_class" additivity="false">
       <appender-ref ref="RollingFileAppender4SpecialMessages" />
    </logger>
    
    <root>
       <level value="ALL" />
       <appender-ref ref="StandardRollingFileAppender" />
    </root>
    

    这样你的特殊类将使用它自己的文件附加器。如果您在普通日志文件中需要该类的日志消息,则需要删除“可加性”属性。

    【讨论】:

    • hmm Root Logger 我不知道这个事实,我从没想过在配置中有一个记录器名称实际上我有许多不同的类,每个类我都使用 ILog logger = LogManager.GetLogger(typeof( myClass)) 这就是为什么我在寻找不等于条件的 LoggerFilter。那么有什么办法吗?不管怎样,谢谢你的回答。
    • 这意味着你在每个班级都有一个记录器,这当然很好。但是你将如何决定第二个文件应该是什么?您是否有其他名称不同的记录器,或者您想在第二个文件中包含来自某个“命名空间”的消息?
    • 是的,每个类都有不同的记录器,并且有一个硬性规定,一个特定的类记录器应该写入第二个文件,而其他的应该写入第一个文件。这就是为什么我在寻找不相等的匹配:(
    • 我不知道加法设置,但这正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2018-12-14
    • 2015-05-11
    相关资源
    最近更新 更多