2010-06-21 92 views
4

如何「覆蓋現有日誌文件」???我試圖設置屬性<appendToFile value="false" />。但仍然日誌文件沒有被覆蓋。 我的配置文件設置如下:覆蓋現有日誌文件

<log4net> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="LogFileAppender" /> 
    </root> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" > 
     <file value="Content/log.txt" /> 
     <appendToFile value="false" /> 
     <threshold value="ON" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="10MB" /> 
     <staticLogFileName value="false" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" /> 
     </layout> 
    </appender> 
    </log4net> 

請讓我知道我在做什麼錯誤。

回答

5

的我想你可能想使用FileAppender而不是RollingFileAppender進行。它允許你覆蓋現有的文件。

http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.html

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="Content/log.txt" /> 
    <appendToFile value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

設置appendToFile假

下面介紹如何編寫一次rollingapender文件每次執行的,但它仍然會創造每執行一個新的文件:

From the examples page

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Content/log.txt" /> 
    <appendToFile value="false" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="-1" /> 
    <maximumFileSize value="10MB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" /> 
    </layout> 
</appender> 
+0

嘿丹尼爾戴森,,,非常感謝您的回覆......但仍然不適合我。我已經在我的配置中添加了與u給出的相同的代碼..但不是覆蓋日誌文件,而是開始在Content文件夾中創建多個文件。我想覆蓋同一個文件中的信息。請給我們的視圖。謝謝 – 2010-06-21 13:47:22

+0

嘿丹尼爾,,,對不起我的錯誤......它與FileAppender工作正常,由u.Thanks引用很多。 – 2010-06-21 13:53:14

0

覆蓋現有文件是否意味着要繼續寫入相同的文件(如循環緩衝區)?如果是這樣,

1)您應該設置maxSizeRollBackups = 0。

2)您還應該設置appendToFile =真

請嘗試,讓我們知道您的結果

+0

嘿Syd謝謝你的好感。我按照u的說法添加了屬性,但是日誌信息仍然在文件中追加。我想覆蓋數據。請讓我知道如果我做錯了什麼。 – 2010-06-21 13:07:22

+0

@Amit,你能再次澄清一下你的需求嗎?您是否希望文件被覆蓋,而不是每次開始記錄過程時被追加到文件中? – Syd 2010-06-21 13:46:41

+0

我的不好。第二條語句不正確:應該設置appendToFile = false。由於這仍然不起作用,所以讓我明天上班時檢查日誌文件。愚蠢的問題,但你重新啓動IIS? – Syd 2010-06-21 14:00:58

3

嘗試使用此:

<param name="AppendToFile" value="false" /> 
<rollingStyle value="Size" /> 
<maxSizeRollBackups value="0" /> 
<staticLogFileName value="true" /> 

此配置將覆蓋現有的日誌文件。