Using log4net


log4net是apache組織開發的日誌組件, 同其姐妹log4j一樣, 是一個開源項目. 可以以插件的形式應用在你的系統中. 下面僅說明如何應用在web forms項目中. 做爲主要的日誌輸出組件.

1. 首先你應該下載log4net.dll並引入到你的項目References中.
2. 需要修改你的global.asa.cs. 配置application對象啓動的時候加載log4net配置. 這一步是不可以缺少的.
protected void Application_Start(Object sender, EventArgs e)
{
   log4net.Config.DOMConfigurator.Configure();
}
3. 可以看到上面的代碼沒有參數. 可見是載入了缺省配置. 該配置必須設置於web.config中.
在web.cofig根節點 configuration 中加入如下section:
<configSections>
  
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
4.該 config section 聲明瞭名爲 log4net 的另外一個config section. 後者必須位於web.config根節點 configuration 下: 以下是一個sample:
<log4net debug="false">
None.gif    
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
None.gif        
<param name="File" value="XxxxApplication.log.txt" />
None.gif        
<param name="datePattern" value="MM-dd HH:mm" />
None.gif        
<param name="AppendToFile" value="true" />
None.gif        
<layout type="log4net.Layout.PatternLayout">
None.gif            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
None.gif        
</layout>
None.gif    
</appender>
None.gif    
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
None.gif        
<layout type="log4net.Layout.PatternLayout">
None.gif            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
None.gif        
</layout>
None.gif    
</appender>
None.gif    
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
None.gif        
<layout type="log4net.Layout.PatternLayout">
None.gif            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
None.gif        
</layout>
None.gif    
</appender>
None.gif    
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
None.gif        
<param name="File" value="_LogData/Log.txt" />
None.gif        
<param name="AppendToFile" value="true" />
None.gif        
<param name="MaxSizeRollBackups" value="10" />
None.gif        
<param name="MaximumFileSize" value="5MB" />
None.gif        
<param name="RollingStyle" value="Size" />
None.gif        
<param name="StaticLogFileName" value="true" />
None.gif        
<layout type="log4net.Layout.PatternLayout">
None.gif            
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
None.gif        
</layout>
None.gif    
</appender>
None.gif    
<root>
None.gif        
<level value="DEBUG" />
None.gif        
<appender-ref ref="LogFileAppender" />
None.gif    
</root>
None.gif
</log4net>

5. 以上定義了多個appender. 簡單來說, 每一個 appender 都是一種輸出介質.
6. root節點指定了選用的 appender. 本例選用了LogFileAppender. (文本文件輸出). 在Appender定義中定義了輸出的格式. 和目標文本文件所在位置. (起始位置是應用程序根目錄. (web.config所在目錄).
7. 到目前位置就配置好了log4net. 可以在我們的應用中直接使用了.
8. 以下說明應用方法:
要輸出日誌, 必須首先得到帶有一個別名的logger.
使用以下命令
(C#):
log4net.ILog Logger logger = log4net.LogManager.GetLogger(this.GetType());
(可以直接使用GetType得到當前類名)
之後調用
logger.Info(string message);
logger.Error(string message);
logger.Debug(string message);
即可輸出日誌.

調試後可查找應用程序根目錄下是否已經自動創建XxxxxApplication.log.txt文本文件.以及是否正確輸出了日誌.

log4net是一個非常完善的日誌組件. 有着強大的可配置性. 有助於提高開發效率.

關於log4net的配置. 可參考apache組織的官方文檔位於
http://logging.apache.org/log4net
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章