我刚开始使用log4net。要阅读XML配置文件,我理解您必须将以下内容放在项目的AssemblyInfo文件中:
<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="Log4net.Config", Watch:=True)>
我有一个包含多个项目的解决方案,似乎我必须将此语句放在解决方案的每个AssemblyInfo文件中(每个项目一个)。我尝试将该语句放在Startup项目的AssemblyInfo中,但是在其他项目中记录调用将不起作用。我必须在每个进行日志记录调用的项目中包含该语句。
1)有没有办法在一个地方调用Config.XmlConfigurator,一次是整个解决方案?
2)我所看到的行为是什么原因造成的?
答案 0 :(得分:3)
您应该将其置于“托管”您的解决方案的程序集中。在程序集中编译为“.exe”的console / winform / wpf应用程序中,在Web应用程序中,我通常在Application-Start事件中显式调用XmlConfigurator.Configure();
。
答案 1 :(得分:1)
为什么不在类中使用静态构造函数来引用所有程序集?如果它们在单个应用程序域中,则只会被调用一次。