为什么大多数log4net示例通过执行以下操作来获取类的记录器:

private static ILog logger =
    LogManager.GetLogger(
    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

而不只是传递typeof(MyClass):
private static ILog logger = LogManager.GetLogger(typeof(MyClass));

除了第一个选项不需要您键入特定的类名之外,还有其他原因吗?

最佳答案

我想你有原因。我这样做是为了不必担心类名,而只需将样板代码复制并粘贴到新类中即可。

有关官方答案,请参见:如何在静态块中获得类的全名?在log4net faq

10-08 17:50