Log4net按日期滚动

时间:2013-01-25 13:25:34

标签: log4net

我要求log4net创建日期,日志文件名为“Application.20130125.txt”,格式为“Application.yyyyMMdd.txt”,在创建日志文件时改为在晚上12日更改时AM。

当日期发生变化时,它应该创建新的日志文件“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")

1 个答案:

答案 0 :(得分: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"来测试它,并且每分钟都会写一个新的日志文件。