VS2010中log4net配置

来源:互联网 发布:淘宝外套毛衣 编辑:程序博客网 时间:2024/04/29 15:28

配置步骤:

1、在项目bin目录添加log4net.dll,下载地址http://logging.apache.org/log4net/download_log4net.cgi,当前版本是log4net 1,2,13,并添加引用
2、在AssemblyInfo.cs中增加如下
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
3、在web.config中<configuration>下面最前面增加如下
<configSections>
    <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="Debug_RollingLogFileAppender" type="log4net.Appender.FileAppender">
      <!--存放日志的路径,logs是当前项目保存日志的文件夹-->
      <param name="File" value="logs/" />
      <!--是否想日志文件中追加-->
      <param name="AppendToFile" value="true" />
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false" />
      <!--日期文件格式-->
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Debug.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <!--输出格式-->
      <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
    </appender>
    <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Debug.log&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
      <!--输出级别在DEBUG和DEBUG之间的日志-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="DEBUG" />
      </filter>
    </appender>
    <appender name="Info_RollingLogFileAppender" type="log4net.Appender.FileAppender">
      <!--存放日志的路径-->
      <param name="File" value="logs/" />
      <!--是否想日志文件中追加-->
      <param name="AppendToFile" value="true" />
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false" />
      <!--日期文件格式-->
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Info.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <!--输出格式-->
      <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
    </appender>
    <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Info.log&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
      <!--输出级别在INFO和INFO之间的日志-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="INFO" />
      </filter>
    </appender>
    <appender name="Warn_RollingLogFileAppender" type="log4net.Appender.FileAppender">
      <!--存放日志的路径-->
      <param name="File" value="logs/" />
      <!--是否想日志文件中追加-->
      <param name="AppendToFile" value="true" />
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Warn.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
    </appender>
    <appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Warn.log&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="Warn" />
        <levelMax value="Warn" />
      </filter>
    </appender>
    <appender name="Error_RollingLogFileAppender" type="log4net.Appender.FileAppender">
      <!--存放日志的路径-->
      <param name="File" value="logs/" />
      <!--是否想日志文件中追加-->
      <param name="AppendToFile" value="true" />
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Error.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
    </appender>
    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Error.log&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="Error" />
        <levelMax value="Error" />
      </filter>
    </appender>
    <appender name="Fatal_RollingLogFileAppender" type="log4net.Appender.FileAppender">
      <!--存放日志的路径-->
      <param name="File" value="logs/" />
      <!--是否想日志文件中追加-->
      <param name="AppendToFile" value="true" />
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Fatal.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
    </appender>
    <appender name="FatalLog" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置-->
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy/yyyyMM/yyyyMMdd&quot;_Fatal.log&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--输出格式-->
      <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="记录时间:%date 已用时(毫秒):%r 线程ID:[%thread] 日志级别:%-5level 出错行数:%-5L 出错类:%logger - 错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="FATAL" />
        <levelMax value="FATAL" />
      </filter>
    </appender>
    <!--定义日志的输出媒介,下面定义日志以五种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
      <!--文件形式记录日志-->
      <appender-ref ref="DebugLog" />
      <appender-ref ref="InfoLog" />
      <appender-ref ref="WarnLog" />
      <appender-ref ref="ErrorLog" />
      <appender-ref ref="FatalLog" />
    </root>
    <logger name="File">
      <appender-ref ref="Debug_RollingLogFileAppender" />
      <appender-ref ref="Info_RollingLogFileAppender" />
      <appender-ref ref="Warn_RollingLogFileAppender" />
      <appender-ref ref="Error_RollingLogFileAppender" />
      <appender-ref ref="Fatal_RollingLogFileAppender" />
    </logger>
  </log4net>
4、程序调用方式
//创建日志记录组件实例
log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
//记录错误日志
log.Error("error", new Exception("发生了一个异常"));
//记录严重错误
log.Fatal("fatal", new Exception("发生了一个致命错误"));
//记录一般信息
log.Info("info");
//记录调试信息
log.Debug("debug");
//记录警告信息
log.Warn("warn");

0 0
原创粉丝点击