winform项目使用log4net

5 篇文章 0 订阅
4 篇文章 0 订阅

原以为和webform一样,就是web.config换成App.config而已,结果日志死活不出来,搞了大半天才跑通。

我尝试了两种方式,都遇到了问题,最后都跑通了。

第一种:log4net节点配置全部写在App.config文件内。

1. 添加log4net.dll引用。

2. App.config的configuration节点下添加如下元素:

<configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
    <param name="File" value="log.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%M] - %m%n" />
    </layout>
  </appender>
  <root>
    <level>INFO</level>
    <appender-ref ref="LogFileAppender" />
  </root>
</log4net>

3. Properties/AssemblyInfo.cs文件中,添加一行:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

开始漏了第3步,一直生成不了日志。这句的用处是,从应用程序的config文件(即App.config)的相关节点自动配置log4net系统。

第二种:使用独立的log4net.config文件。

1. 添加log4net.dll引用。

2. App.config的appSettings节点下添加如下元素:

<add key="log4net.Config" value="log4net.config"/>
<add key="log4net.Config.Watch" value="True"/>
3. App.config同级目录下,添加log4net.config文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
    <param name="File" value="D:\log\xixi.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%M] - %m%n" />
    </layout>
  </appender>

  <root>
    <level>INFO</level>
    <appender-ref ref="LogFileAppender" />
  </root>
</log4net>
4. 修改log4net.config文件属性-"Copy to Output Directory"的值为"Copy if newer"或者"Copy Always".

开始漏了第4步,也是一直不能生成日志,改了就好了。

App.config是系统默认配置文件,debug的时候已经化身为 "程序名.exe.config"。然而其他文件如果不指定copy的话,是到不了bin\debug下面的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值