3 回答
TA贡献1860条经验 获得超9个赞
我认为这里的问题是您的log变量在调用构造函数之前被初始化。所以基本上你在打电话LogManager.GetLogger之前打电话XmlConfigurator.Configure()
log在配置 log4net 后尝试在构造函数中进行初始化,看看是否能解决您的问题。
public Service1()
{
InitializeComponent();
XmlConfigurator.Configure();
log = LogManager.GetLogger(typeof(Service1));
}
TA贡献1812条经验 获得超5个赞
添加另一个答案,因为我之前的预感似乎是错误的(或者您实际上在这里有两个问题)。假设您发布了整个 app.config 文件,看起来您并没有在其中的任何地方声明 log4net 配置部分:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
也许这就是问题所在?
TA贡献2016条经验 获得超9个赞
在我的特殊情况下,我们总是在类构造函数上初始化 Log4Net 时设置 app.config 文件:
log4net.Config.XmlConfigurator.Configure(new Uri(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "YouAppConfigFile.config")));
Log = log4net.LogManager.GetLogger("ServiceClass1");
Log.Info("ServiceClass1 Started!!!");
- 3 回答
- 0 关注
- 385 浏览
添加回答
举报