2011-04-11 297 views
4

當前版本的Log4net是否有辦法創建一個RollingFileAppender,其中滾動文件總是保留給定的擴展名(.log,在我的情況下)?Log4Net複合RollingFileAppender與靜態文件擴展名

格式的實施例I想:

MyLog.log
MyLog.2011-04-10.1.log
MyLog.2011-04-10.2.log
MyLog.2011-04 -10.3.log

我發現this post它說,有一個「PreserveLogFileNameExtension」屬性,但它不包括在官方的二進制文件。這仍然是這樣嗎?

如果是這樣:任何人都可以解釋爲什麼這個屬性仍然不是Log4Net的官方部分?我對使用自定義構建有點懷疑,但也許我不應該?

我也很好奇知道爲什麼默認功能不保留文件擴展名。我不明白爲什麼它會讓所有日誌文件具有不同的擴展名。

編輯:得到它的工作通過這樣做:
1:下載和構建log4net的源代碼
2:應用這些補丁:https://issues.apache.org/jira/browse/LOG4NET-64
3:在配置設置PreserveLogFileNameExtension爲 「true」。

回答

2

情況沒有改變。沒有更新版本的log4net。當我(如果)會有一個新版本時,我很不清楚...

我認爲你不需要擔心使用自定義構建。測試你的軟件,如果它起作用就足夠了。

編輯:有一個新版本應該包括LOG4NET-64。當然,你仍然可以堅持你的定製版本。

+0

謝謝快速回復!我做了一個自定義構建,並將「PreserveLogFileNameExtension」屬性設置爲true。這似乎適用於大小滾動,但不是日期。現在它會根據需要滾動到「MyLog.1.log」,但當它在日期推出時,我會看到「MyLog.1.log04-11-2001」,這與我以前的版本非常相似。如何獲得「MyLog.1.04-11-2011.log」的更多提示?我嘗試過使用的方法,但是與PreserveLogFileNameExtension結合使用它並不起作用;由於某種原因,它只保留最後的日誌文件,當它推出日期.. – 2011-04-11 12:55:05

+0

也許該功能沒有正確實施...如果我是你,我會嘗試修復它自己在源代碼(如果我真的需要它) – 2011-04-11 13:29:51

+0

當我從這個頁面應用補丁時,它按照我的需要工作! https://issues.apache.org/jira/browse/LOG4NET-64 – 2011-04-12 07:51:00

4

你試過這些參數嗎?

<file value="log-files\MyLog" /> 
<appendToFile value="true" /> 
<rollingStyle value="Date" /> 
<datePattern value="yyyy-MM-dd'.log'" /> 
<param name="StaticLogFileName" value="false" /> 

它會保留擴展,但會給你這樣每個文件名的日期。

 
MyLog2011-05-16.log 
MyLog2011-05-17.log 
MyLog2011-05-18.log 
MyLog2011-05-19.log 

也許有可能將它與尺寸滾動相結合?

0

我使用這個配置:

<file value="" /> 
<appendToFile value="true" /> 
<rollingStyle value="Date" /> 
<datePattern value="yyyyMMdd'.log'" /> 
<staticLogFileName value="false" /> 

爲了得到這樣的文件名:

  • 20111101.log
  • 20111102.log
  • 20111103.log