Log4Net 将日志文件放在年月文件夹中

Log4Net put log files in year and month folders

我已经尝试了我在 Whosebug 上找到的一些建议,最后得到了以下似乎可以完成工作的建议:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="%appSetting{LogsFolder}\%date{yyyy}\%date{MM}\MyLogs.log" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="ddMMyyyy" />
        <preserveLogFileNameExtension value="true" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger (%property{culture}) %identity - %message%newline" />
        </layout>
    </appender>

然而,经过几个月的记录后,我发现配置不正确,但我看不出是什么导致了问题。

我得到一个文件夹结构,第一个是 ,第二个是 ,但我仍然没有 [=23] 的文件夹=]12 还(12 月)。我拥有的最新文件夹是 11,这个文件夹包含 11 月从 6 日到 30 日的所有日志以及 12 月的日志。

文件名为 MyLogs12112018.log 等,其中格式为 day/month/year.

我真的很想在 MyLogs 和日期之间添加一个 (.),但这是次要的。

但是,为什么日志文件放置在错误的文件夹中?

尝试第二行:

<file type="log4net.Util.PatternString" value="%appSetting{LogsFolder}\%date{yyyy}\%date{MM}\%date{dd}\MyLogs.log" />''

下面的怎么样:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="%appSetting{LogsFolder}" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy\MM\'MyLogs.'ddMMyyyy'.log'" />
      <preserveLogFileNameExtension value="true" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger (%property{culture}) %identity - %message%newline" />
      </layout>
    </appender>