2012-10-05 33 views
0

我的項目是在C#中(Windows窗體).NET3.5如何使用log4net的

在我的代碼有多個事件和每個事件進行多次搜索正在運行創建動態日誌。

我必須爲每個事件創建日誌文件,多個搜索可以訪問和寫入這個單一的日誌文件。

問題是我不知道如何使用log4net創建動態(在運行時設置)多個日誌名稱。

如何設置有位置(路徑)

我關於探險家我的問題,網上也沒找到其解決這類問題的任何幫助。

任何想法PLS

回答

0

log4net通常用於具有多發來源和追加程序。 要生成一個定義源,要求日誌管理有一個名爲日誌,通常我們用一個類型來標識一個日誌,但覺得免費的,如果你想使用字符串:

var myLog = LogManager.GetLogger("NAME"); 
.... 
    var myLog = LogManager.GetLogger(GetType()); 

在第一種情況下,記錄器識別由"NAME",在第二個由名稱空間的類型名稱。 然後,您可以使用過濾器等配置appender,爲所有日誌配置它們的子集。 讓我們來看一個例子:

<configuration> 

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

    </configSections> 
    <log4net> 

<appender name="MYFILE" type="log4net.Appender.RollingFileAppender"> 
    <file value=".\logs\myname.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date %-5level (%thread) %logger - %message%newline"/> 
    </layout> 
</appender> 

<root> 
    <level value="INFO"/> 
    <!-- all logger append to these appenders /> 
    <appender-ref ref="xxxxxx"/> 

</root> 
<logger name="NAME"> 
    <level value="INFO"/> 

    <appender-ref ref="MYFILE"/> 
</logger> 
<!-- add other appender here --> 

不要忘了在你的應用程序調用啓動XmlConfigurator.Configure();

+0

謝謝,我要問一兩件事,我怎麼能動態改變名字 huda

+0

@huda很容易:使用%property%,如下所示http://stackoverflow.com/a/571979/566608 –