2008年4月11日

Configure Log4Net in ASP.NET 2.0

即將離開巨人的肩膀,到外頭去獨立闖天下...因此許多的機制,過去公司的元件已經包裝好了,現在卻要自己做。有些繁瑣,因此決定再次站到open source巨人的肩膀上,享受它的便利。

第一個遇到的機制是:Log

我選用了Apache的Log4net,它是一個用來處理Log的open source的元件,它可以輸出為各種不同的目的物件,例如文字檔、EMail、DB、...等)

想要了解更多的人,可以到Apache的網站上看看說明摟~~
也有Java的版本!
http://logging.apache.org/

那接下來就由我來跟各位介紹一下,如何安裝與使用它~~

Configuring Log4net:

Step 1:下載log4net.dll。(請自行至下列網址下載最新版本。)
http://logging.apache.org/log4net/download.html

Step 2:將log4net.dll加入Web Project的參考。

Step 3:新增一個Global.asax的檔案,然的的,如果已經有了,也就不用新增摟~~
在該檔案內的Application_Start加入下列程式碼:

void Application_Start(object sender, EventArgs e)
{
// 應用程式啟動時執行的程式碼
log4net.Config.XmlConfigurator.Configure();
}


Step 4:在Config的"configSections"區塊中,加入下面section:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>


Step 5:在Config中,新增一個""的Section。並且加入下面的Code

  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="LogFiles/yccs.web.log@"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <datePattern value="yyyy-MM-dd"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %-5level %logger %file%line [%property{NDC}]%newline  %message%newline"/>
      </layout>
    </appender>
    <root>
      <!--
      設定寫log的層級
     
ALL     全寫
     
DEBUG   Debug用的
     
INFO    資訊  (此層級用來寫SQL Log)
     
WARN    警告
     
ERROR   錯誤
     
FATAL   毀滅性錯誤
     
OFF     關閉
       -->
      <level value="ALL"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>   </log4net>


<file value="LogFiles/yccs.web.log@"/>:指定輸出的檔案路徑語名稱。
<staticLogFileName value="false"/>:檔名是否要變動。
<datePattern value="yyyy-MM-dd"/>:檔名變動的格式。
<level value="ALL"/>:撰寫log的層級。

這樣就大功告成了基本安裝瞜~~
那皆來我們該如何寫Log到LogFile呢?


ILog logger = LogManager.GetLogger("RollingFileAppender");
logger.Error("WebUtility.GetAppSettings", ex);


RollingFileAppender是Web Config檔中,設定的appender的name。兩個要相對應。

沒有留言:

張貼留言