May 2015 Blog Posts

log4net配置后不运行,没有日志输出

MitchellChu 2015-05-25 .NET技术

偷懒,新建项目中使用下载了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并不是那么好用的,因为自己也会生成一个同名的文件,如果顽固的使用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又能和我们一起愉快的玩耍了。

 

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。