C# log4net:带空格的日期时间格式

本文关键字:日期 时间 格式 空格 log4net | 更新日期: 2023-09-27 18:33:31

我正在使用RollingFileAppender(log4net)在文件中记录24/7应用程序的事件。文件名必须如下所示:

"blabla-2012- 3- 6.txt"或"blabla-2012-13-

6"或"blabla-2012- 3-12.txt"

问题是我不知道日期时间格式,它会使用空格而不是零。

RollingFileAppender appender = new RollingFileAppender ();
                 appender.Name = String.Format ("{0} appender_", name);
                 appender.File = string.Format ("{0} {1} {2} {3}", logPath, @ "'", file, name, extension);
                 appender.AppendToFile = true;
                 appender.LockingModel = new FileAppender.MinimalLock();
                 appender.StaticLogFileName = false;
              ->> Appender.DatePattern = string.Format ("yyyy-M-d");
....

C# log4net:带空格的日期时间格式

Log4net 使用以下命令来确定滚动文件追加器中的文件名:

m_scheduledFilename = 
CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo));

其中,您猜测m_now是当前日期时间。因此,您可以使用所有可用的日期时间自定义格式,我认为您需要的格式不是开箱即用的。因此,如果您绝对需要这种格式,您可以通过从 RollingFileAppender 派生并重写 RollOverTime 方法来编写自定义追加器。

您可以将文本放在格式字符串中:

Appender.DatePattern = "yyyy- M- d"; // don't need string.Format

这不行吗?

编辑:我现在明白了:你想要MM,但你想要的不是"05",而是"5"。日期时间格式设置没有办法促进这一点。您可以创建自己的衍生 RollingFileAppender 来尝试处理这种特殊情况格式。