我已经写了一个简单的扩展,应该允许我这样称呼方法GetLogger任何类。log4net和C#扩展方法|性能
static class Log4NetExtension {
public static ILog GetLogger(this object cls) {
return LogManager.GetLogger(cls.GetType());
}
}
所以,我可以从不同的类日志如下:
class Test1 {
public void method() {
this.GetLogger().Fatal ("Lorem ipsum no dolor...");
}
}
class Test2 {
public void method() {
this.GetLogger().Error("Lorem ipsum no dolor...");
}
}
我的问题是,究竟LogManager.GetLogger()方法调用做什么? 它创建它的方法调用每一次记录仪?如果我定期调用this.GetLogger(),这种方法对我的应用程序有很大的影响吗?
不回答你的问题,但为什么不注入一个'ILogService'到你的类需要记录呢? 'myString.GetLogger()'会发生什么? – MaYaN
它会创建一个新的记录器。有趣的,但如果我希望从该类登录,那么该类应该实现的创建接口如何。然后你可以做一些像公共静态ILog GetLogger(这个IMyType cls); –
看看:Benchmarker项目上的https://github.com/NimaAra/Easy.Logger,你可以看到如何将Log4NetService注入你的类。 – MaYaN