2011-10-11 52 views
0

所以,我已經有一個使用log4net的,和我的web.config目前看起來像NHibernate的工作:需要修改這個log4net的寫入到文件中,寫入多個文件的能力

<log4net debug="false"> 
    <appender name="console" type="log4net.Appender.ConsoleAppender, log4net"> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
     <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"/> 
    </layout> 
    </appender> 
    <!-- Setup the root category, add the appenders and set the default priority --> 
    <root> 
    <priority value="INFO"/> 
    <appender-ref ref="console"/> 
    </root> 
</log4net> 

現在我的電流要求是能夠爲我的應用程序中的每個主要模塊創建一個單獨的日誌文件。

現在,它似乎只是寫給控制檯,但我需要添加寫入文件的能力。

我必須在我的配置中修改才能做到這一點?

我希望能夠在我的代碼中說我想寫入日誌文件「logfile_1」,如果它不存在,創建它,否則只是追加到它。

回答

2

真不簡單,沖洗並根據需要爲你想要的,如果你想讓他們分開了這樣你也可以用不同的文件命名空間相關聯的文件的數量重複,但我覺得它更容易只是使用Log2Console查看文件一起。

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="k:\temp\log2console.log" /> 
    <appendToFile value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j" /> 
</appender> 

不要忘記將appender-ref添加到根部分。

+2

此外,您可以使用RollingFileAppender,它具有更強大的功能,可用於自動存檔或自動備份達到特定大小或日期的文件。 [RollingFileAppender](http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html) – ooPeanutButter

+0

我無法設置它,因此我不必定義名稱文件名? – codecompleting

+1

@codecompleting:創建你自己的appender是相當簡單的,所以如果你想要的文件價值略有不同,相同的功能,我相信你可以創建它。由於我通常想知道給定應用程序的日誌文件的內容和位置,因此我沒有對它進行太多的研究。 – Druegor