使用NLog时我应该继承类记录器吗?

时间:2015-03-03 14:52:33

标签: c# nlog

从派生类进行日志记录时,我应该从基类继承class-logger实例,还是实例化一个新类?

即,哪个更好:

public class Base
{
    private static Logger _logger = LogManager.GetCurrentClassLogger();
    private void Foo()
    {
        _logger.Info("Hello world");
    }
}

public class Derived : Base
{
    new private static Logger _logger = LogManager.GetCurrentClassLogger();

    private void Fee()
    {
        _logger.Info("Hello world");
    }
}

或:

public class Base
{
    protected static Logger _logger = LogManager.GetCurrentClassLogger();
    private void Foo()
    {
        _logger.Info("Hello world");
    }
}

public class Derived : Base
{
    private void Fee()
    {
        _logger.Info("Hello world");
    }
}

1 个答案:

答案 0 :(得分:2)

你应该使用一个新的。

LogManager.GetCurrentClassLogger创建一个名称为当前类的记录器。如果使用父类的记录器,则会丢失执行日志记录的类的信息,看起来好像记录是由父类完成的。大多数情况下,您希望在记录时尽可能准确地获取信息。