使用 NLog 时是否应该继承 class 记录器?
Should I inherit the class logger when using NLog?
当从派生 class 记录日志时,我应该从基础 class 继承 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");
}
}
你应该使用一个新的。
LogManager.GetCurrentClassLogger
创建一个名为当前 class 的记录器。如果您使用父级的 class 记录器,您将丢失 class 执行日志记录的信息,看起来好像日志是由父级 class 完成的。大多数时候,您希望在记录时获得尽可能准确的信息。
当从派生 class 记录日志时,我应该从基础 class 继承 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");
}
}
你应该使用一个新的。
LogManager.GetCurrentClassLogger
创建一个名为当前 class 的记录器。如果您使用父级的 class 记录器,您将丢失 class 执行日志记录的信息,看起来好像日志是由父级 class 完成的。大多数时候,您希望在记录时获得尽可能准确的信息。