log4Net 无法输出文件的问题排除

log4Net 运行的大致逻辑

  1. 应用程序启动,加载程序集 log4net.dll
  2. 指定 log4net.dll 的配置文件
  3. 根据配置文件中输出对象的命名初始化实例
  4. 调用 log4Net 的实例方法输出日志

不产生日志文件可能的原因

  1. 这里是列表文本程序集未加载 这个基本可能排除。(* ̄︶ ̄)地球猿应该都会保证Debug下面有引用过的程序集吧

2.配置文件常用的两种方法。

一种是直接在App.config 中指定,另外一种是 创建一个单独的xml文件作为配置。这里有几项需要检查的细节,一般不输出的话都是这里的问题。

3.在log4.net 的配置节中可以同时命名多个Appender,并指定它的输出方式。 在程序中需要根据自己的需求指定。

4.方法调用不用说,如果没有这一步肯定不会输出日志。

排除问题需要着重检查的几项

1.启动代码中正确指定了配置文件

 // 日志配置文件位置
string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "log4net.Config";
 //注册 log4net的配置文件
 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(logFilePath));

2.配置文件和程序集都在Debug目录下

确认一下配置文件在VS中设置为“如果有较新则复制”或“始终复制”,对用 在app.config 中设置或者单独的配置文件都需要检查,因为很多时候“复制大法”导致手工加入或粘贴到项目而忘记重新配置

配置文件属性

本小白就是载到这里了,因为经常使用相同的配置,直接从其他项目中把文件粘了过来,没有重新设置文件属性o(╥﹏╥)o

  1. 在App.config 中配置log4net 时需要保证配置节在正确的位置。

配置节检查

**注意:**由于config配置文件的特性,如果在config配置文件中存在configsections节点,则必须将configsections作为第一上配置项,否则会引发异常:配置系统未能初始化。

配置备忘

  • 如何防止自定义的logger和root重复写入日志

其实log4net提供了一种很好的解决方式,断开logger与root的继承关系,只要在配置文件里的logger加上属性additivity="false" 就可以了。

转载于:https://my.oschina.net/HenuToater/blog/1794303

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值