如何使用log4net

介紹
Log4net是一個開源的組件.可以使.net程序記錄日誌並輸出成各種格式.

使用代碼
Log4net可以提供簡便的方式去使用強大的日誌功能.步驟如下:

1. 獲取最新版本的Log4net組件並添加引用到程序
提供一個版本下載:http://files.cnblogs.com/xugang/log4net.rar

2. 增加以後行到你的AssemblyInfo.cs文件

[assembly: log4net.Config.XmlConfigurator(ConfigFile="Web.config",Watch=true)] //For log4net 1.2.10.0

上面的語句提供了配置log4net參數的配置文件

3. 添加以下節點到web.config

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\TestProj\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>

上面的節點定義了配置記錄日誌的參數

RollingLogFileAppender描述記錄日誌的方式,這代表日誌將被寫在一個文件,該文件當滿的話會自動增加.
這裏有其他可用的途徑來保存日誌.

layout負責格式化日誌請求,然而保存日誌途徑的定義和日誌輸出的格式有關.
上邊layout輸出的格式如下:

2006-07-14 20:26:04,033 [1736] ERROR Utility [PayStub] - Could not find a part of the path
"c:\inetpub\wwwroot\TestProj\Template\PayStub.xml"

4. 如果你想要log4net增加自己的診斷信息,須在web.config文件中加入以下代碼
<appSettings>
<add key="log4net.Internal.Debug" value="true" />
</appSettings>

在system.web節點下如以下代碼:

<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textWriterTraceListener"
type
="System.Diagnostics.TextWriterTraceListener"
initializeData
="C:\\TestProj\\TestProjlog4net.txt" />
</listeners>
</trace>
</system.diagnostics>

5. 在代碼頁面進行以下步驟:

a. 添加名字空間

using log4net;

b. 添加有類定義的聲明
private static readonly ILog log = LogManager.GetLogger(typeof(TestPage1).Name);

或者
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

6. 現在你可以用下面的語句記錄日誌了
if (log.IsErrorEnabled)
{
   log.Error("Page Load failed : " + ex.Message);
}

或者
if (log.IsDebugEnabled)
{
   log.Debug("Application loaded successfully.");
}

這裏只是簡單介紹了log4net的使用,但log4net還有很多特性可用. 

發佈了45 篇原創文章 · 獲贊 17 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章