首页 > 解决方案 > 如何使用 datePattern 在 log4net 中指定绝对文件路径?

问题描述

我希望将日志文件写入保存日志文件的目录。我正在使用带有 datePattern 的 RollingFileAppender。这是我所拥有的不起作用的:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
        <file value="x:\Logs\log" />
        <immediateFlush value="true" />
        <appendToFile value="true" />
        <datePattern value="yyyyMMdd"/>
        <maximumFileSize value="10MB" />
        <maxSizeRollBackups value="5" />

        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %level %thread %logger - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFile" />
    </root>
</log4net>

我希望这会产生类似的结果:

x:\Logs\log-20211026.log

相反,我得到

x:\Logs\log

我见过的例子没有使用路径,例如:

<file value="log">
<datePattern value="yyyyMMdd"/>

有没有办法让数据模式、绝对路径和最后的“.log”?

标签: log4netlog4net-configurationlog4net-appender

解决方案


我工作中的某个人给出了答案:

文件名应包含扩展名,并且需要设置 2 个附加属性:

<file value="x:\Logs\log.log"/>
<preserveLogFileNameExtention value="true"/>
<staticLogFileName value="false"/>

推荐阅读