winform项目使用log4net

来源:互联网 发布:淘宝小儿介入 编辑:程序博客网 时间:2024/05/18 03:48

原以为和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下面的。

0 0
原创粉丝点击