C# Log4net有一个带有日期模式的FileAppender

C# Log4net有一个带有日期模式的FileAppender,c#,log4net,log4net-configuration,C#,Log4net,Log4net Configuration,我正在尝试做一些我认为很简单的事情 在log4net中使用文件名中带有日期的FileAppender 在你急着回答这个问题之前,我需要明确我不需要RollingFileAppender,因为我知道这是可能的。 我想在每次运行控制台应用程序时生成1个日志文件。所以我不需要滚动文件追加器,每次只需要1个文件,上面有时间戳 这就是它变得棘手的地方,因为此配置: <log4net> <root> <level value="ALL" />

我正在尝试做一些我认为很简单的事情

在log4net中使用文件名中带有日期的FileAppender

在你急着回答这个问题之前,我需要明确我不需要RollingFileAppender,因为我知道这是可能的。 我想在每次运行控制台应用程序时生成1个日志文件。所以我不需要滚动文件追加器,每次只需要1个文件,上面有时间戳

这就是它变得棘手的地方,因为此配置:

<log4net>
    <root>
        <level value="ALL" />
        <appender-ref ref="MyFileAppender" />
    </root>
    <appender name="MyFileAppender" type="log4net.Appender.FileAppender">
        <file value="logs\" />
        <datePattern value="dd.MM.yyyy'.log'" />
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %level %logger - %message%newline" />
        </layout>
    </appender>
</log4net>
如果我没有一个模式,只是有一个静态文件,每次应用程序被覆盖时,它都会工作

那么,对于文件追加器,这是不可能的吗? 我使用的是1.2.15.0版

成功了:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="logs\App-%date{yyyy-MM-dd_HH-mm-ss}.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%2thread] %-5level - %message%newline" />
    </layout>
</appender>

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="logs\App-%date{yyyy-MM-dd_HH-mm-ss}.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%2thread] %-5level - %message%newline" />
    </layout>
</appender>