我的logback配置文件中有以下RollingFileappender。
<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>C:FilesMyLogFile.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>C:FilesMyLogFile.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{60} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
它确实将文件作为 MyLogFile 写入上述目录.log但不附加FileNamePattern
中指定的日期。任何想法如何设法在我的文件名中附加日期。谢谢。
TimeBasedRollingPolicy
的文档指出:
请注意,
file
属性RollingFileAppender
(父级TimeBasedRollingPolicy
) 可以设置或省略。通过设置 包含FileAppender
的 file 属性,可以解耦 活动日志文件的位置和存档日志的位置 文件。当前日志将始终以指定的文件为目标 由file
物业。因此,当前活动的名称 日志文件不会随时间而更改。但是,如果您选择省略file
属性,则将为每个 期间基于fileNamePattern
的值。
在您的情况下,只需省略 file
属性。
例如,您可以使用以下配置。它经过测试并:)
<!-- FILE APPENDER WITH PRUDENT MODE -->
<!-- IN PRUDENT MODE CANNOT BE SPECIFIED FILE, THIS PARAM IS OBTAINED FROM FILE NAME PATTERN -->
<!-- IN PRUDENT MODE ONLY TIME BASED ROLLING POLICY IS SUPPORTED - BECAUSE WE HAVE A LOG OF MULTIPLE JVM INSTANCES-->
<!-- SEE MORE AT http://logback.qos.ch/manual/appenders.html#prudentWithRolling -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logfile.path}-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${HOSTNAME} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>