在c#中使用log4net

1.从log4net官网下载最新的log4net.dll

 

2.设置配置文件在app.config

<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
    </configSections>
<log4net debug="false">

    <!--使用Rolling方式记录日志按照日来记录日志-->
    <appender name="RunLog" type="log4net.Appender.RollingFileAppender">
      <!--文件名,可以相对路径,也可以绝对路径,这里只给定了文件夹-->
      <file value="log\\runtime\\" />
      <!--最小锁定模型以允许多个进程可以写入同一个文件,解决文件独占问题-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--是否增加文件-->
      <appendToFile value="true" />
      <!--日志追加类型,Date为按日期增加文件,Size为按大小-->
      <rollingStyle value="Date" />
      <!--文件命名格式,非日期参数化要进行转义,如自定义文件后缀-->
      <datePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;" />
      <!--是否固定文件名-->
      <staticLogFileName value="false" />
      <!--内容布局-->
      <layout type="log4net.Layout.PatternLayout">
        <!--头部-->
        <header value="----------------------header--------------------------&#13;&#10;"/>
        <!--结尾-->
        <footer value="----------------------footer--------------------------&#13;&#10;"/>
        <!--输出格式化-->
        <conversionPattern value="当前时间:%d [%p] %m %n" />
      </layout>
      <!--过滤器-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <!--只接受最小等级与最大等级之间的日志输出,这里只接受INFO级别的输出-->
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>

    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <file value="log\\error\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="----------------------header--------------------------&#13;&#10;"/>
        <footer value="----------------------footer--------------------------&#13;&#10;"/>
        <conversionPattern value="当前时间:%d 错误类型:[%p]  信息:%m  所在类:%F 所在行:%L %n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <!--只接受最小等级与最大等级之间的日志输出,其他的被过滤,这里接受WARN(警告),ERROR(错误),FATAL(致命)级别的输出-->
        <param name="LevelMin" value="WARN" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>

    <!--定义日志的输出媒介-->
    <root>
      <!--RollingFileAppender事件日志-->
      <appender-ref ref="RunLog" />
      <appender-ref ref="ErrorLog" />
    </root>

  </log4net>
 
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>

 

3.在Properties/AssemblyInfo.cs,添加下面一个代码

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

 

4.在程序中使用

//日志
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

//记录程序启动
 log.Info("程序启动");

//记录程序发生错误
log.Error("发生错误:HttpListener已经被关闭");

 

posted on 2014-09-19 16:02  钱胖子  阅读(528)  评论(0编辑  收藏  举报

导航