如何使用 datePattern 在 log4net 中指定绝对文件路径?

Posted

技术标签:

【中文标题】如何使用 datePattern 在 log4net 中指定绝对文件路径?【英文标题】:How can I specify an absolute file path in log4net, with a datePattern? 【发布时间】:2021-12-12 04:27:57 【问题描述】:

我希望将日志文件写入保存日志文件的目录。我正在使用带有 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”结尾?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于如何使用 datePattern 在 log4net 中指定绝对文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

dojo / mvc / at不以约束datePattern的格式返回dijit / form / DateTextBox

log4j.xml日志输出(如何按小时输出日志文件)

log4j.xml日志输出(如何按小时输出日志文件)

如何强制 logback 在翻转时创建新文件

dojo:如何在网格中格式化日期类型

如何在kafka server.log文件名中包含当前日期和小时?