Log4Net配置

使用log4net

1. 从apache网站下载log4net, http://logging.apache.org/log4net/download_log4net.cgi 

    将 \bin\net\4.0\release\log4net.dll 复制到你的项目的debug文件夹中

    将log4net.dll 添加引用到你的项目中。

2.在项目的AssemblyInfo.cs类中添加如下内容

   [assembly: log4net.Config.XmlConfigurator()]

3.配置app.config,如果你的项目里面没有,新建一个配置文件即可,app.config的配置如下:

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

  <configSections>
    <section name="log4net"
    type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <!--站点日志配置部分-->
  <log4net>
    <root>
      <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
      <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->
      <!--如果没有定义LEVEL的值,则缺省为DEBUG-->
      <level value="DEBUG" />
      <!--通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用-->
      <appender-ref ref="PayFileLog" />
      <appender-ref ref="ConsoleAppender" />
    </root>

    <logger additivity="false" name="RegisterFileLog">
      <level value="DEBUG"/>
      <appender-ref ref="RegisterFileLog" />
    </logger>

    <!--appender 日志的输出方式。。。。。FileAppender 将日志输出到文件-->
    <!--将日志输出到本项目debug文件下的Pay_Log.log-->
    <appender name="PayFileLog" type="log4net.Appender.FileAppender" >
     <!-- <param name="File" value="d:/log/Pay_Log.log" />  输出到指定文件夹-->
      <!--输出到本项目的debug文件夹下-->
      <file value="Pay_Log.log"/>
      <param name="AppendToFile" value="true" />

      <!--日志格式-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
      </layout>

      <!--过滤掉一些不需要的等级。。。。LevelRangeFilter 日志等级在指定范围内的事件才被记录-->
      <!--
      <filter type="log4net.Filter.LevelRangeFilter">
       <param name="LevelMin" value="INFO" />
       <param name="LevelMax" value="WARN" />
      </filter>
      -->
      <!--LevelMatchFilter 只有指定等级的日志事件才被记录-->
      <filter type="log4net.Filter.LevelMatchFilter">
        <param name="LevelToMatch" value="INFO" />
      </filter>
      <!--配置是如果日志的输出级别不符合DEBUG要求的话,则不输出任何日志-->
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>

    <!--将日志输出到本项目debug文件下的Register_Log.log-->
    <appender name="RegisterFileLog" type="log4net.Appender.FileAppender">
      <!--<file value="d:/log/Register_Log.log"/>-->
      <file value="Register_Log.log"/>
      <appendToFile value="true"/>
      <!--日志格式-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
      </layout>
      <!--LevelMatchFilter 只有指定等级的日志事件才被记录-->
      <filter type="log4net.Filter.LevelMatchFilter">
        <param name="LevelToMatch" value="DEBUG" />
      </filter>
      <!--配置是如果日志的输出级别不符合DEBUG要求的话,则不输出任何日志-->
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>

    <!--将日志输出到控制台-->
    <appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >

      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern"  value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>

    </appender>

  </log4net>


</configuration>

4.调用

 1 namespace Log4NetDome
 2 {
 3     class PrintLog
 4     {
 5         public void FATAL(log4net.ILog log, string message)
 6         {
 7             log.Fatal(message);
 8         }
 9         /// <summary>
10         /// 输出错误级别日志
11         /// </summary>
12         /// <param name="message">输出的消息</param>
13         public void Error(log4net.ILog log, string message)
14         {
15             log.Error(message);
16         }
17 
18         /// <summary>
19         /// 输出警告级别日志
20         /// </summary>
21         /// <param name="message">输出的消息</param>
22         public void Warning(log4net.ILog log, string message)
23         {
24             //记录日志
25             log.Warn(message);
26         }
27 
28         /// <summary>
29         /// 输出信息级别日志
30         /// </summary>
31         /// <param name="message">输出的消息</param>
32         public void Info(log4net.ILog log, string message)
33         {
34             //记录日志
35             log.Info(message);
36         }
37 
38         /// <summary>
39         /// 输出调试级别日志
40         /// </summary>
41         /// <param name="message">输出的消息</param>
42         public void Debug(log4net.ILog log, string message)
43         {
44             //记录日志
45             log.Debug(message);
46         }
47     }
48 }
 1 namespace Log4NetDome
 2 {
 3     public partial class Form1 : Form
 4     {
 5         public Form1()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private static log4net.ILog paylog = log4net.LogManager.GetLogger("PayFileLog"); //获取一个日志记录器
11         private static log4net.ILog reglog = log4net.LogManager.GetLogger("RegisterFileLog");
12         PrintLog log = new PrintLog();
13         private void button1_Click(object sender, EventArgs e)
14         {
15             log.Debug(paylog, "Debug");
16             log.Info(paylog, " Info");
17             MessageBox.Show("aaaaaaaa");
18 
19             log.Debug(reglog, "Debug");
20             log.Info(reglog, " Info");
21         }     
22     }

posted @ 2017-01-17 11:54  cdy_昵称  阅读(177)  评论(0)    收藏  举报