.net – NLog:将一个记录器传给一个好习惯吗?

嗨,我有一个常见的Utilities类,它将在类中记录一些信息,我将从不同的类中调用此类.应该如何声明我的Nlog,以便我可以将记录器与不同的调用者分开.

我有以下示例,我希望Nlog保持CallerA和CallerB记录器中的Utilities类生成的日志相应,我应该将我的记录器引用传递给Utilities类吗?我听说为一个班级保留一个记录器是一个好习惯.

非常感谢您的建议=)

namespace Common
{
    public class Utilities
    {
        private static readonly Logger _logger = LogManager.GetCurrentClassLogger();

        public void DoSomething()
        {
            _logger.Info("log here");
        }
    }
}

namespace ProjectA
{
    public class CallerA
    {
        private static readonly Logger _logger = LogManager.GetCurrentClassLogger();

        public void CallerMethod()
        {
            new Common.Utilities().DoSomething();
        }
    }
}

namespace ProjectB
{
    public class CallerB
    {
        private static readonly Logger _logger = LogManager.GetCurrentClassLogger();

        public void CallerMethod()
        {
            new Common.Utilities().DoSomething();
        }
    }
}

最佳答案 在这种情况下,我会在ILogger上写一个C#扩展名

所以

_logger.DoSomething()
点赞