[英]Enable logging to two different locations in log4net
我是log4net的新手,我正在尝试维护一些使用它的旧代码。 我注意到,有两个告诉Log4net记录到不同位置的静态类正在相互跳闸。
每个类都有一个静态构造函数,如下所示
static Logger() {
_Logger = new X.LoggingService.AppLogger(
X.UtilityServer.Configuration.ConfigInfo.LoggerConfigFile);
}
除非具有不同的配置值; 这两个静态类都正在初始化相同的AppLogger
帮助器类。 要初始化的第二个类将覆盖第一个类的初始化。 我想我已经将问题归结为:
private ILog Log {
get {
if (!_ConfiguratorSet) {
_ConfiguratorSet = true;
XmlConfigurator.Configure(new FileInfo(_ConfigFile)); //<--- STATIC
}
return _log;
}
}
由于我绝对不必支持线程安全 ,因此是否应该删除if语句? 每次需要登录某些东西时,都将调用XmlConfigurator.Configure
昂贵吗? 有没有更好的办法? 该代码是使用log4net版本1.2.10编写的
理想情况下,将发生以下情况:
编码
private ILog Log {
get {
if (!_ConfiguratorSet) {
_ConfiguratorSet = true;
XmlConfigurator.Configure(new FileInfo(_ConfigFile)); //<--- STATIC
}
return _log;
}
}
确实令人困惑和错误。 您应该只返回一个日志在那里,所以没有如果可言。 这违反了单一责任原则,并且可能是您看到错误的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.