从派生类进行日志记录时,我应该从基类继承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");
}
}
答案 0 :(得分:2)
你应该使用一个新的。
LogManager.GetCurrentClassLogger
创建一个名称为当前类的记录器。如果使用父类的记录器,则会丢失执行日志记录的类的信息,看起来好像记录是由父类完成的。大多数情况下,您希望在记录时尽可能准确地获取信息。