使用log4net ThreadContext替代方法添加自定义属性

时间:2019-04-05 10:40:17

标签: c# log4net

我有一个类,其中向ThreadContext添加了自定义属性以记录信息。

class MyClass
{
    private ILog myLog = LogManager.GetLogger(typeof(MyClass));
    public MyClass()
    {
        log4net.ThreadContext.Properties["ABC"] = "Foobar";
    }
}

我可以使用模式中的%property {ABC}成功登录,并且工作正常。

但是MyClass的实例在不同的上下文中使用,因此ABC不必在执行myLog.Info()的同一ThreadContext上设置,因此,它有时为null。

除了使用ThreadContext之外,还有其他方法吗?

我正在寻找一种优雅的方法来自动将此ABC属性注入记录器。因此,每次记录消息时,此属性都可用于附加程序。开发人员在记录某些内容时不应该在意它。他们应该像往常一样消耗记录器。

0 个答案:

没有答案