Log4net有一个带日期模式的FileAppender

时间:2016-08-10 10:54:22

标签: c# log4net log4net-configuration

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

在log4net中安装FileAppender,文件名中包含日期。

在你急于回答这个问题之前,我需要明确表示我不需要RollingFileAppender,因为我知道有可能使用RollingFileAppender。 每次运行我的控制台应用程序时,我想生成1个日志文件。所以我不需要滚动文件appender,每次只需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>

给出了这个错误:

log4net:ERROR XmlHierarchyConfigurator: Cannot find Property [datePattern] to se
t object on [log4net.Appender.FileAppender]

如果我没有模式并且只有一个静态文件,每次应用程序都会被覆盖,它就可以工作。

使用文件追加器是不可能的? 我使用的是1.2.15.0版。

1 个答案:

答案 0 :(得分:2)

这样做了:

<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>