Java Logback创建一个文件一次并写入该文件,即使它来自过去的一天
我想有一个新的文件,每天它被触发显然它只是附加旧文件,无论它是哪一天。这是我的logback.xmlJava Logback创建一个文件一次并写入该文件,即使它来自过去的一天,java,xml,logging,logback,Java,Xml,Logging,Logback,我想有一个新的文件,每天它被触发显然它只是附加旧文件,无论它是哪一天。这是我的logback.xml 日志文件。%d{yyyy-MM-dd}.log /opt/tomcat/logs/log-${byDay}.log 真的 真的 %-4相对[%thread]-5级别%logger{35}-%msg%n 您的配置中有多个问题 正如@csenga所指出的,您不需要timestamp元素 您需要RollingFileAppender而不是FileAppender 应该没有日期模式,即常量文件
日志文件。%d{yyyy-MM-dd}.log
/opt/tomcat/logs/log-${byDay}.log
真的
真的
%-4相对[%thread]-5级别%logger{35}-%msg%n
您的配置中有多个问题
- 正如@csenga所指出的,您不需要timestamp元素
- 您需要RollingFileAppender而不是FileAppender
应该没有日期模式,即常量文件名前缀
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]
如果从配置中省略<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
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]