NLog:在类中传递记录器是一个好的做法吗?

Dre*_*teh 5 .net nlog

您好,我有一个通用的实用程序类,它将在类中记录一些信息,我将从不同的类中调用该类。应该如何声明我的 Nlog,以便我可以将记录器与不同的调用者分开。

我有以下示例,我希望 Nlog 将 Utilities 类生成的日志相应地保留在 CallerA 和 CallerB 记录器中,我是否应该将记录器引用传递给 Utilities 类?我听说在一堂课上保留一个记录器是一个很好的做法。

非常感谢您的建议=)

命名空间通用
{
    公共课 公用事业
    {
        私有静态只读 Logger _logger = LogManager.GetCurrentClassLogger();

        公共无效DoSomething()
        {
            _logger.Info("在此记录");
        }
    }
}

命名空间项目A
{
    公共类来电者A
    {
        私有静态只读 Logger _logger = LogManager.GetCurrentClassLogger();

        公共无效调用者方法()
        {
            新 Common.Utilities().DoSomething();
        }
    }
}

命名空间项目B
{
    公共类 CallerB
    {
        私有静态只读 Logger _logger = LogManager.GetCurrentClassLogger();

        公共无效调用者方法()
        {
            新 Common.Utilities().DoSomething();
        }
    }
}

Jul*_*ian 1

在这种情况下我会写一个 C# 扩展ILogger

所以

_logger.DoSomething()
Run Code Online (Sandbox Code Playgroud)