logback在名称为当前日期的文件夹内创建日志文件

在我当前的项目中,我想按日期创建日志文件,即日志文件应驻留在

名称为date的文件夹中。归档也应在该特定文件夹中进行。

我正在使用的当前Appender看起来像这样(它会根据大小对日志文件进行归档)。

    <appender name="AUDITFILE"

class="ch.qos.logback.core.rolling.RollingFileAppender">

<file>${PROJECT_HOME}\\projectname\\audits\\myproject.log</file>

<append>true</append>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\myproject_%d{yyyy-MM-dd}.%i.zip

</fileNamePattern>

<maxHistory>10</maxHistory>

<timeBasedFileNamingAndTriggeringPolicy

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

<maxFileSize>10KB</maxFileSize>

</timeBasedFileNamingAndTriggeringPolicy>

</rollingPolicy>

<encoder>

<pattern>%date %msg%n

</pattern>

</encoder>

</appender>

回答:

如fileNamePattern的文档中所述,您可以指定多个%d标记,以便将日期放入归档文件名的文件夹名称中:

<fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\%d{yyyy-MM, aux}\\myproject_%d{yyyy-MM-dd}.%i.zip</fileNamePattern>

请注意,只有一个%d令牌可以是主令牌,所有其他令牌必须通过传递’aux’参数标记为辅助令牌。

但是,如果您还想将其放入非归档文件名的文件名中,则有两个选择:

  1. 使用<timestamp />元素来设置您在路径中使用的变量。但是此时间戳记仅在启动时设置一次,因此它对于批处理运行很有用,但对服务而言却不是。

  2. 做像上述(1),但包裹<appender/><timestamp />SiftingAppender,这将使该时间戳来进行重新评估,如果使用的logback> = 1.0.12的版本。不确定要如何配置SiftingAppender。但是希望这将使您走上正确的道路。

以上是 logback在名称为当前日期的文件夹内创建日志文件 的全部内容, 来源链接: utcz.com/qa/426009.html

回到顶部