偷懒,新建项目中使用Nuget下载了log4net的配置文件(就那不带版本号的log4net.detail里面有说明是log4net xml),但设置好之后,log4net竟然奇葩的罢工了,没有任何报错。该配置方式是使用独立的log4net.xml文件来进行配置。
加载使用:
var log4net_config = Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location),"log4net.xml");
XmlConfigurator.Configure(new FileInfo(log4net_config));
检视过整个配置之后,发现这个Nuget来的配置文件有些地方出现纰漏:
其一是文件名称,log4net.xml并不是那么好用的,因为log4net自己也会生成一个同名的文件,如果顽固的使用xml文件,那么你需要配合第二点,并确保输出目录中的这个文件确实是配置文件,个人建议改成log4net.config更为妥当;
其二是项目中该文件属性,复制到输出目录需要设置成始终复制或较新复制,生成操作更应该不是无,请选择内容;
按照上面的修改配置文件之后,使用下面的代码加载后,log4net又活过来了。
var log4net_config = Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location),"log4net.config"); // here is diff.
XmlConfigurator.Configure(new FileInfo(log4net_config));
当然,为了简单,你也可以在AssemblyInfo.cs中使用:
// 注意:是在AssemblyInfo.cs文件中添加
[assembly:log4net.Config.XmlConfigurator(ConfigFile="log4net.config",Watch=true)];
恩,就这样,log4net又能和我们一起愉快的玩耍了。