我希望每天都有一个新的文件被触发显然它只是附加旧文件,无论它是什么日子。这是我的logback.xml。
<timestamp key="byDay" datePattern="yyyy-MM-dd"/>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
<file>/opt/tomcat/logs/log-${byDay}.log</file>
<append>true</append>
<immediateFlush>true</immediateFlush>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
答案 0 :(得分:1)
您的配置中存在多个问题。
更正了配置(请注意我设置滚动每分钟发生一次):
<configuration scan="true" debug="true">
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/opt/tomcat/logs/log.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/opt/tomcat/logs/log_%d{yyyy-MM-dd_HHmm}.log
</FileNamePattern>
</rollingPolicy>
<immediateFlush>true</immediateFlush>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n
</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
结果文件:
riskop@riskop:/opt/tomcat/logs$ ls -l
total 24
-rw-rw-r-- 1 riskop riskop 13640 febr 15 14:30 log_2018-02-15_1430.log
-rw-rw-r-- 1 riskop riskop 310 febr 15 14:31 log_2018-02-15_1431.log
-rw-rw-r-- 1 riskop riskop 155 febr 15 14:37 log.log
如果您查看了logback自己的日志记录,那么您将看到已记录回滚:
14:37:20,673 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Elapsed period: Thu Feb 15 14:31:01 CET 2018
14:37:20,673 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming file [/opt/tomcat/logs/log.log] to [/opt/tomcat/logs/log_2018-02-15_1431.log]
如果省略&lt;档案&gt;来自配置的参数,然后将根据日期时间模式命名当前文件。这不是通常的配置恕我直言,因为在这种情况下你乍看之下你不会看到当前文件是什么。