只是想知道我这样做是否正确:
我声明了Log4Net对象:
private static readonly log4net.ILog _log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
然后在整个类的方法中,当我只使用log:
_log.Debug("passing...");
这样可以,或者我应该在方法中声明和使用Log4Net对象(在每种方法中实例化_log)?
答案 0 :(得分:2)
这样做比在每种方法中声明记录器更好。您可以通过向上调用堆栈来再次找到您所使用的方法的名称,这里described因此初始化每个方法中的日志会适得其反,因为每次调用都会反映一段时间。
即使使用静态对象,反射调用解析您的类名也需要一些资源,但在您计时之前,您将无法知道它们对您的影响。如果在启动时开始观察到长时间延迟,可能是因为在解析类类型时运行记录器初始化。如果是这样,那么您将需要优化。但是现在,不要打扰,你做对了