Log4net:Logger实例化

时间:2012-04-02 15:56:25

标签: log4net log4net-configuration

人。 我对log4net中记录器的使用有疑问。当选择每个类的logger(静态只读字段)和每个实例的logger(只读字段)时,什么是更好的方法?就个人而言,我在每个类使用记录器时看到的唯一缺点是它的实例化:

log4net.LogManager.GetLogger(
        System.Reflection.MethodBase.GetCurrentMethod().DeclaringType

由于反射,它看起来不太好。 如果我按以下方式创建记录器:

log4net.LogManager.GetLogger(typeof(MyClass))

有可能我偶然会制作复制/粘贴错误,而不是 typeof(MyClass)我可以提供 typeof(SomeOtherClass),这是不好的。

每个实例使用logger时,我可以使用:

log4net.LogManager.GetLogger(this.GetType())

此方法不使用反射,并且没有复制/粘贴错误。

对此还有其他想法吗?

1 个答案:

答案 0 :(得分:4)

除了使用依赖注入更好的事实之外,我认为你的方法很好。我过去一直在使用这种方法。