程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Log4net入門(幫助類篇),log4net入門幫助類

Log4net入門(幫助類篇),log4net入門幫助類

編輯:關於.NET

Log4net入門(幫助類篇),log4net入門幫助類


  在前幾篇Log4net入門文件的講述過程中,我們在使用log4net的類中都要編寫如下一行代碼:

 1 private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

  如果有多個類都要使用log4net輸出日志信息,那麼每個類中都要編寫這一行代碼,為了避免這種情況的發生,我們將編寫一個靜態類來對log4net進行封裝。那麼,以後我們在什麼地方需要輸出日志信息,只需要調用這個靜態類的相應方法即可。實現步驟如下所示:

1、創建一個空白解決方案,命名為“Utils”。

2、在該解決方案中創建一個名為“Log4netUtil”的類庫項目,然後對該類庫項目使用“NuGet包管理器”安裝log4net程序集。

3、展開“Log4netUtil”類庫項目的“Properties”屬性,雙擊打開“AssemblyInfo.cs”文件,在該文件的最下面添加如下一行代碼:

 1 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)] 

  注意:上面一行代碼中的“Log4net.config”要與我們之後添加的配置文件的名字一致。

4、在“Log4netUtil”類庫項目中添加一個名為“Log4netHelper”的靜態類,代碼如下所示:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace Log4netUtil
 8 {
 9     public static class Log4netHelper
10     {
11         private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
12 
13         public static void Debug(object message)
14         {
15             log.Debug(message);
16         }
17 
18         public static void Debug(object message, Exception exception)
19         {
20             log.Debug(message, exception);
21         }
22 
23         public  static void Info(object message)
24         {
25             log.Info(message);
26         }
27 
28         public static void Info(object message, Exception exception)
29         {
30             log.Info(message, exception);
31         }
32 
33         public static void Warn(object message)
34         {
35             log.Warn(message);
36         }
37 
38         public static void Warn(object message, Exception exception)
39         {
40             log.Warn(message, exception);
41         }
42 
43         public static void Error(object message)
44         {
45             log.Error(message);
46         }
47 
48         public static void Error(object message, Exception exception)
49         {
50             log.Error(message, exception);
51         }
52 
53         public static void Fatal(object message)
54         {
55             log.Fatal(message);
56         }
57 
58         public static void Fatal(object message, Exception exception)
59         {
60             log.Fatal(message, exception);
61         }
62     }
63 }

5、右擊“Utils”解決方案,新建一個名為“Log4netTest”控制台應用程序,該應用程序主要用來測試log4net的幫助類是否正確運行。

6、右擊新創建的“Log4netTest”控制台應用程序的“引用”節點,添加對“Log4netUtil”類庫的引用。

7、在“Log4netTest”的根目錄下添加一個名為“Log4net.config”的配置文件,並將該配置文件的“復制到輸出目錄”屬性的值設置為“始終復制”,然後修改該配置文件的內容如下所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3   <configSections>
 4     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
 5   </configSections>
 6 
 7   <log4net>
 8     <!-- 將日志以回滾文件的形式寫到文件中 -->
 9     <!-- 按日期切分日志文件,並將日期作為日志文件的名字 -->
10     <appender name="RollingFileAppenderNameByDate" type="log4net.Appender.RollingFileAppender">
11       <!-- 日志文件存放位置,可以為絕對路徑也可以為相對路徑 -->
12       <file value="C:\Logs\" />
13       <!-- 將日志信息追加到已有的日志文件中-->
14       <appendToFile value="true" />
15       <!-- 最小鎖定模式,以允許多個進程可以寫入同一個文件 -->
16       <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
17       <!-- 指定按日期切分日志文件 -->
18       <rollingStyle value="Date" />
19       <!-- 日志文件的命名規則 -->
20       <datePattern value="&quot;UtilLogs_&quot;yyyyMMdd&quot;.log&quot;" />
21       <!-- 當將日期作為日志文件的名字時,必須將staticLogFileName的值設置為false -->
22       <staticLogFileName value="false" />
23 
24       <layout type="log4net.Layout.PatternLayout">
25         <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
26       </layout>
27     </appender>
28 
29     <root>
30       <!-- 控制級別,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
31       <!-- 比如定義級別為INFO,則INFO級別向下的級別,比如DEBUG日志將不會被記錄 -->
32       <!-- 如果沒有定義LEVEL的值,則缺省為DEBUG -->
33       <level value="ALL" />
34       <!-- 按日期切分日志文件,並將日期作為日志文件的名字 -->
35       <appender-ref ref="RollingFileAppenderNameByDate" />
36     </root>
37   </log4net>
38 </configuration>

8、雙擊打開“Log4netTest”項目中的“Program.cs”文件,修改該文件如下所示:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace Log4netTest
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Log4netUtil.Log4netHelper.Info("Info信息!");
14         }
15     }
16 }

  運行控制台應用程序,我們即可看到日志文件正確生成!

  源碼下載

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved