0

我要求 log4net 在创建日志文件时以“Application.20130125.txt”的日志文件名为“Application.20130125.txt”的格式创建日期,而不是在晚上 12 点更改日期时创建日期。

并且当日期更改时,它应该创建新的日志文件为“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")
4

1 回答 1

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"并且每分钟写入一个新的日志文件来测试它。

于 2013-01-25T14:29:20.373 回答