2013-01-25 60 views
0

我需要在log4net的,而不是日期時間爲「Application.20130125.txt」,「Application.yyyyMMdd.txt」的格式創造日誌文件的時間來創建日期明智的日誌文件名晚上12點更換。log4net的滾動按日期

而當日期改變,它應該創建新的日誌文件爲「Application.20130126.txt」

能否請你提出需要什麼樣的變化做的 下面的代碼,這樣的日期創建第一和在軋製時, 創建一個新文件的日期「Application.20130126.txt」

  LogPath = "C:\Logs\" 
      fileName = "ApplicationName" & "..txt" 

      hierarchy = DirectCast(LogManager.GetRepository(), Hierarchy) 
    patternLayout.ConversionPattern = "%m%n" 
    patternLayout.ActivateOptions() 
    roller.Layout = patternLayout 
    roller.RollingStyle = RollingFileAppender.RollingMode.Date 
    roller.DatePattern = "yyyyMMdd" 
    roller.AppendToFile = True 
    roller.StaticLogFileName = True 
    roller.File = LogPath & fileName 
    roller.PreserveLogFileNameExtension = True 
    roller.ActivateOptions() 
    hierarchy.Root.AddAppender(roller) 
    hierarchy.Root.Level = Level.Debug 
    hierarchy.Configured = True 
    log = LogManager.GetLogger("RollingFileAppender") 
+0

您將需要滾動的風格與模式一起添加到日期,並自動將滾過日誌的日期邊界變化的新的文件名。檢查此鏈接:http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html – Rajesh

+0

另外看看在SO此鏈接:http://stackoverflow.com/questions/734963/ log4net-rollingfileappender -with-composite-rolling-style-is-overwritting-data – Rajesh

+0

我想讓DatePattern在創建文件時工作,但不能在午夜12點時滾動。 –

回答

2

請在下面找到,我是用我的樣品會寫信給你需要的文件:

Dim fileappender = New log4net.Appender.RollingFileAppender() 
    fileappender.AppendToFile = True 
    fileappender.Threshold = log4net.Core.Level.Debug 
    fileappender.File = "MyLogFile_" 
    fileappender.DatePattern = "yyyyMMdd" 
    fileappender.StaticLogFileName = False 
    fileappender.Layout = New log4net.Layout.SimpleLayout() 
    fileappender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date 
    fileappender.ActivateOptions() 
    DirectCast(log4net.LogManager.GetRepository(), log4net.Repository.Hierarchy.Hierarchy).Root.AddAppender(fileappender) 
    log4net.Config.BasicConfigurator.Configure(fileappender) 

以上將創建一個日誌文件,今天 爲「MyLogFile_20130125」其文件名,一旦日期時間的變化會寫一個新的文件保存爲「MyLogFile_20130126」

您也可以通過datePattern設置進行測試"yyyyMMddhhmm"並且每分鐘都會寫入一個新的日誌文件。

+0

我正在使用log4net for Windows服務,屬性設置爲 _ OnElapsedTime()。有了它,它應該只創建一個線程。但它仍然是隨機創建多個日誌文件,如「MyLogFile_20130125」,「MyLogFile_2013012520130125」,「MyLogFile_201301252013012520130125」。即使日期未更改,它也會繼續將yyyyMMdd附加到日誌文件名稱。有沒有解決方法? –