不管用什么框架,學什么東西,最初的想法還不是盡快地用上這個框架,所以我們在這個章節還是不打算介紹具體配置節的應用,而是直接給出一個經典的使用樣例,讓你盡快上手。即使你對Log4Net的配置不熟悉也完全沒有關系。
(下面的文章假定你已經看過了第一篇,當然在有的操作中,我還是會簡單地重復第一篇,以便加深你的記憶)
先說說這篇教程的思路,我們打算使用Log4Net,首先必須先引入Log4Net的庫;然后我們要對Log4Net進行一些配置;最后,我們會在代碼里面使用它。
1、引入Log4Net.dll組件→見第一篇
2、自定義Log4Net配置文件的引入
與第一篇不同的是,我們將不再App.config或Web.config(應用程序配置文件)中配置Log4Net文件了,我們打算在App.config中配置少許的必要信息,然后將具體的配置信息在一個XML文件中配置Log4Net這樣的話,不會讓App.Config太過于臃腫,它的可移植性也會更好。
2.1 我們將log4net.config文件引入到項目中,同時讓它復制到輸出目錄。因為log4net框架會在相對于AppDomain.CurrentDomain.BaseDirectory 屬性定義的目錄路徑下查找配置文件。框架在配置文件里要查找的唯一標識是<log4net>標簽。(log4net.config可以在文章末尾下載)
跟文章(一)比起來,我們的App.config文件現在就清爽多了
2.2 在文章(一)中,我們沒有指定具體使用什么文件,Log4Net自動幫我們選擇使用app.config文件了,現在我們有了自己的配置文件,自然需要指定一下使用哪一個配置文件,不能再讓Log4Net幫我們自動選擇了。我們只需要在AssemblyInfo.cs文件中寫一句話指定使用哪個配置文件即可。
[assembly: log4net.Config.XmlConfigurator( ConfigFile="log4net.config", ConfigFileExtension = "config", Watch = true)]
3.在代碼中使用Log4Net
我封裝了一個類叫LogHelper,里面的兩個logger類,分別對應在Log4Net.config中的兩個Logger。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Common { public class LogHelper { public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void WriteLog(string info) { if (loginfo.IsInfoEnabled) { loginfo.Info(info); } } public static void WriteLog(string info, Exception se) { if (logerror.IsErrorEnabled) { logerror.Error(info, se); } } } }
像文章(一)一樣,我們建立一個winform程序,添加一個按鈕,在按鈕中寫入如下的點擊事件。
4、運行效果
日志文件在“程序的輸出目錄(就是Debug文件夾)\Log\LogInfo”
小提示
在文章中的log4net.config文件可以在示例程序中找到。
文章列表