【转】log4net使用详解
生活随笔
收集整理的這篇文章主要介紹了
【转】log4net使用详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明:本程序演示如何利用log4net記錄程序日志信息。log4net是一個功能著名的開源日志記錄組件。利用log4net可以方便地將日志信息記錄到文件、控制臺、Windows事件日志和數據庫(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我們還可以記載控制要記載的日志級別,可以記載的日志類別包括:FATAL(致命錯誤)、ERROR(一般錯誤)、WARN(警告)、INFO(一般信息)、DEBUG(調試信息)。要想獲取最新版本的log4net組件庫,可以到官方網站http://logging.apache.org/log4net/下載。現在的最新版本是1.2.10。
下面的例子展示了如何利用log4net記錄日志 。
首先從官方網站下載最近版本的log4net組件,現在的最新版本是1.2.10。在程序中我們只需要log4net.dll文件就行了,添加對log4net.dll的引用,就可以在程序中使用了。
接著我們配置相關的配置文件(WinForm對應的是*.exe.config,WebForm對應的是*.config),本實例中是控制臺應用程序,配置如下(附各配置的說明):
代碼 ?1?<?xml?version="1.0"?encoding="utf-8"??>?2?<configuration>
?3???<configSections>
?4?????<section?name="log4net"?type="System.Configuration.IgnoreSectionHandler"/>
?5???</configSections>
?6???<appSettings>
?7???</appSettings>
?8???<log4net>
?9?????<!--定義輸出到文件中-->
10?????<appender?name="LogFileAppender"?type="log4net.Appender.FileAppender">
11???????<!--定義文件存放位置-->
12???????<file?value="D:log4netfile.txt"?/>
13???????<appendToFile?value="true"?/>
14???????<rollingStyle?value="Date"?/>
15???????<datePattern?value="yyyyMMdd-HH:mm:ss"?/>
16???????<layout?type="log4net.Layout.PatternLayout">
17?????????<!--每條日志末尾的文字說明-->
18?????????<footer?value="by?周公"?/>
19?????????<!--輸出格式-->
20?????????<!--樣例:2008-03-26?13:42:32,111?[10]?INFO??Log4NetDemo.MainClass?[(null)]?-?info-->
21?????????<conversionPattern?value="記錄時間:%date?線程ID:[%thread]?日志級別:%-5level?出錯類:%logger?property:[%property{NDC}]?-?錯誤描述:%message%newline"?/>
22???????</layout>
23?????</appender>
24?????<!--定義輸出到控制臺命令行中-->
25?????<appender?name="ConsoleAppender"?type="log4net.Appender.ConsoleAppender">
26???????<layout?type="log4net.Layout.PatternLayout">
27?????????<conversionPattern?value="%date?[%thread]?%-5level?%logger?[%property{NDC}]?-?%message%newline"?/>
28???????</layout>
29?????</appender>
30?????<!--定義輸出到windows事件中-->
31?????<appender?name="EventLogAppender"?type="log4net.Appender.EventLogAppender">
32???????<layout?type="log4net.Layout.PatternLayout">
33?????????<conversionPattern?value="%date?[%thread]?%-5level?%logger?[%property{NDC}]?-?%message%newline"?/>
34???????</layout>
35?????</appender>
36?????<!--定義輸出到數據庫中,這里舉例輸出到Access數據庫中,數據庫為C盤的log4net.mdb-->
37?????<appender?name="AdoNetAppender_Access"?type="log4net.Appender.AdoNetAppender">
38???????<connectionString?value="Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=C:log4net.mdb"?/>
39???????<commandText?value="INSERT?INTO?LogDetails?([LogDate],[Thread],[Level],[Logger],[Message])?VALUES?(@logDate,?@thread,?@logLevel,?@logger,@message)"?/>
40???????<!--定義各個參數-->
41???????<parameter>
42?????????<parameterName?value="@logDate"?/>
43?????????<dbType?value="String"?/>
44?????????<size?value="240"?/>
45?????????<layout?type="log4net.Layout.PatternLayout">
46???????????<conversionPattern?value="%date"?/>
47?????????</layout>
48???????</parameter>
49???????<parameter>
50?????????<parameterName?value="@thread"?/>
51?????????<dbType?value="String"?/>
52?????????<size?value="240"?/>
53?????????<layout?type="log4net.Layout.PatternLayout">
54???????????<conversionPattern?value="%thread"?/>
55?????????</layout>
56???????</parameter>
57???????<parameter>
58?????????<parameterName?value="@logLevel"?/>
59?????????<dbType?value="String"?/>
60?????????<size?value="240"?/>
61?????????<layout?type="log4net.Layout.PatternLayout">
62???????????<conversionPattern?value="%level"?/>
63?????????</layout>
64???????</parameter>
65???????<parameter>
66?????????<parameterName?value="@logger"?/>
67?????????<dbType?value="String"?/>
68?????????<size?value="240"?/>
69?????????<layout?type="log4net.Layout.PatternLayout">
70???????????<conversionPattern?value="%logger"?/>
71?????????</layout>
72???????</parameter>
73???????<parameter>
74?????????<parameterName?value="@message"?/>
75?????????<dbType?value="String"?/>
76?????????<size?value="240"?/>
77?????????<layout?type="log4net.Layout.PatternLayout">
78???????????<conversionPattern?value="%message"?/>
79?????????</layout>
80???????</parameter>
81?????</appender>
82?????<!--定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->
83?????<root>
84???????<!--文件形式記錄日志-->
85???????<appender-ref?ref="LogFileAppender"?/>
86???????<!--控制臺控制顯示日志-->
87???????<appender-ref?ref="ConsoleAppender"?/>
88???????<!--Windows事件日志-->
89???????<appender-ref?ref="EventLogAppender"?/>
90???????<!--?如果不啟用相應的日志記錄,可以通過這種方式注釋掉
91???????<appender-ref?ref="AdoNetAppender_Access"?/>
92???????-->
93?????</root>
94?????
95???</log4net>
96?</configuration>
?
程序文件:
代碼 ?1?using?System;?2?using?System.Collections.Generic;
?3?using?System.Text;
?4?using?System.Windows.Forms;
?5?using?System.Reflection;
?6?using?log4net;
?7?
?8?//注意下面的語句一定要加上,指定log4net使用.config文件來讀取配置信息
?9?//如果是WinForm(假定程序為MyDemo.exe,則需要一個MyDemo.exe.config文件)
10?//如果是WebForm,則從web.config中讀取相關信息
11?[assembly:?log4net.Config.XmlConfigurator(Watch?=?true)]
12?namespace?Log4NetDemo
13?{
14?????///?<summary>
15?????///?說明:本程序演示如何利用log4net記錄程序日志信息。log4net是一個功能著名的開源日志記錄組件。
16?????///?利用log4net可以方便地將日志信息記錄到文件、控制臺、Windows事件日志和數據庫中(包括MS?SQL?Server,?Access,?Oracle9i,Oracle8i,DB2,SQLite)。
17?????///?下面的例子展示了如何利用log4net記錄日志
18?????///?</summary>
19?????public?class?MainClass
20?????{
21?????????public?static?void?Main(string[]?args)
22?????????{
23?????????????//Application.Run(new?MainForm());
24?????????????//創建日志記錄組件實例
25?????????????ILog?log?=?log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
26?????????????//記錄錯誤日志
27?????????????log.Error("error",new?Exception("發生了一個異常"));
28?????????????//記錄嚴重錯誤
29?????????????log.Fatal("fatal",new?Exception("發生了一個致命錯誤"));
30?????????????//記錄一般信息
31?????????????log.Info("info");
32?????????????//記錄調試信息
33?????????????log.Debug("debug");
34?????????????//記錄警告信息
35?????????????log.Warn("warn");
36?????????????Console.WriteLine("日志記錄完畢。");
37?????????????Console.Read();
38?????????}
39?????}
40?}
?
?
總結
以上是生活随笔為你收集整理的【转】log4net使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王力宏《十八般武艺》新碟 测评
- 下一篇: 点关机后主机不能自动关机的原因