您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“asp.net中軟件使用log4net”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“asp.net中軟件使用log4net”這篇文章吧。
說明:本程序演示如何利用log4net記錄程序日志信息。log4net是一個功能著名的開源日志記錄組件。利用log4net可以方便地將日志信息記錄到文件、控制臺、Windows事件日志和數(shù)據(jù)庫(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我們還可以記載控制要記載的日志級別,可以記載的日志類別包括:FATAL(致命錯誤)、ERROR(一般錯誤)、WARN(警告)、INFO(一般信息)、DEBUG(調試信息)。要想獲取最新版本的log4net組件庫,可以到官方網(wǎng)站http://logging.apache.org/log4net/下載。現(xiàn)在的最新版本是1.2.10。
下面的例子展示了如何利用log4net記錄日志 。
首先從官方網(wǎng)站下載最近版本的log4net組件,現(xiàn)在的最新版本是1.2.10。在程序中我們只需要log4net.dll文件就行了,添加對log4net.dll的引用,就可以在程序中使用了。
Log4net.dll下載地址:http://www.kemok4.com/dll/Log4net.dll.html
接著我們配置相關的配置文件(WinForm對應的是*.exe.config,WebForm對應的是*.config),本實例中是控制臺應用程序,配置如下(附各配置的說明):
<? xml version="1.0" encoding="utf-8" ?> < configuration > < configSections > < section name ="log4net" type ="System.Configuration.IgnoreSectionHandler" /> </ configSections > < appSettings > </ appSettings > < log4net > <!-- 定義輸出到文件中 --> < appender name ="LogFileAppender" type ="log4net.Appender.FileAppender" > <!-- 定義文件存放位置 --> < file value ="D:/log4netfile.txt" /> < appendToFile value ="true" /> < rollingStyle value ="Date" /> < datePattern value ="yyyyMMdd-HH:mm:ss" /> < layout type ="log4net.Layout.PatternLayout" > <!-- 每條日志末尾的文字說明 --> < footer value ="by 周公" /> <!-- 輸出格式 --> <!-- 樣例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info --> < conversionPattern value ="記錄時間:%date 線程ID:[%thread] 日志級別:%-5level 出錯類:%logger property:[%property{NDC}] - 錯誤描述:%message%newline" /> </ layout > </ appender > <!-- 定義輸出到控制臺命令行中 --> < appender name ="ConsoleAppender" type ="log4net.Appender.ConsoleAppender" > < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </ layout > </ appender > <!-- 定義輸出到windows事件中 --> < appender name ="EventLogAppender" type ="log4net.Appender.EventLogAppender" > < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </ layout > </ appender > <!-- 定義輸出到數(shù)據(jù)庫中,這里舉例輸出到Access數(shù)據(jù)庫中,數(shù)據(jù)庫為C盤的log4net.mdb --> < appender name ="AdoNetAppender_Access" type ="log4net.Appender.AdoNetAppender" > < connectionString value ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> < commandText value ="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> <!-- 定義各個參數(shù) --> < parameter > < parameterName value ="@logDate" /> < dbType value ="String" /> < size value ="240" /> < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%date" /> </ layout > </ parameter > < parameter > < parameterName value ="@thread" /> < dbType value ="String" /> < size value ="240" /> < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%thread" /> </ layout > </ parameter > < parameter > < parameterName value ="@logLevel" /> < dbType value ="String" /> < size value ="240" /> < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%level" /> </ layout > </ parameter > < parameter > < parameterName value ="@logger" /> < dbType value ="String" /> < size value ="240" /> < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%logger" /> </ layout > </ parameter > < parameter > < parameterName value ="@message" /> < dbType value ="String" /> < size value ="240" /> < layout type ="log4net.Layout.PatternLayout" > < conversionPattern value ="%message" /> </ layout > </ parameter > </ appender > <!-- 定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。 --> < root > <!-- 文件形式記錄日志 --> < appender-ref ref ="LogFileAppender" /> <!-- 控制臺控制顯示日志 --> < appender-ref ref ="ConsoleAppender" /> <!-- Windows事件日志 --> < appender-ref ref ="EventLogAppender" /> <!-- 如果不啟用相應的日志記錄,可以通過這種方式注釋掉 <appender-ref ref="AdoNetAppender_Access" /> --> </ root > </ log4net > </ configuration >
程序文件:
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Reflection; using log4net; // 注意下面的語句一定要加上,指定log4net使用.config文件來讀取配置信息 // 如果是WinForm(假定程序為MyDemo.exe,則需要一個MyDemo.exe.config文件) // 如果是WebForm,則從web.config中讀取相關信息 [assembly: log4net.Config.XmlConfigurator(Watch = true )] namespace Log4NetDemo { /// <summary> /// 說明:本程序演示如何利用log4net記錄程序日志信息。log4net是一個功能著名的開源日志記錄組件。 /// 利用log4net可以方便地將日志信息記錄到文件、控制臺、Windows事件日志和數(shù)據(jù)庫中(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)。 /// 下面的例子展示了如何利用log4net記錄日志 /// 作者:周公 /// 時間:2008-3-26 /// 首發(fā)地址: http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx /// </summary> public class MainClass { public static void Main( string [] args) { // Application.Run(new MainForm()); // 創(chuàng)建日志記錄組件實例 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // 記錄錯誤日志 log.Error( " error " , new Exception( " 發(fā)生了一個異常 " )); // 記錄嚴重錯誤 log.Fatal( " fatal " , new Exception( " 發(fā)生了一個致命錯誤 " )); // 記錄一般信息 log.Info( " info " ); // 記錄調試信息 log.Debug( " debug " ); // 記錄警告信息 log.Warn( " warn " ); Console.WriteLine( " 日志記錄完畢。 " ); Console.Read(); } } }
運行結果:
控制臺上的輸出
日志文件內容
在這里需要特別說明一下,注意上面的代碼中有這么一句:[assembly: log4net.Config.XmlConfigurator(Watch = true)](在需要使用log4net的類的namespace處),如果沒有這句就會在調試時得到如下留言中所說的“程序調試起來時isDebugEnable"的情況,希望大家注意。
以上是“asp.net中軟件使用log4net”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。