Java Logback创建一个文件一次并写入该文件,即使它来自过去的一天

Java 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 应该没有日期模式,即常量文件

我想有一个新的文件,每天它被触发显然它只是附加旧文件,无论它是哪一天。这是我的logback.xml


日志文件。%d{yyyy-MM-dd}.log
/opt/tomcat/logs/log-${byDay}.log
真的
真的
%-4相对[%thread]-5级别%logger{35}-%msg%n

您的配置中有多个问题

  • 正如@csenga所指出的,您不需要timestamp元素
  • 您需要RollingFileAppender而不是FileAppender
  • 应该没有日期模式,即常量文件名前缀
更正配置(注意,我设置滚动每分钟发生一次):

如果您查看了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]
如果从配置中省略参数,则当前文件将根据datetime模式命名。这不是通常的配置IMHO,因为在这种情况下,您第一眼就看不到当前文件是什么。

是的,谢谢您的输入:)我刚刚做了您描述的所有事情,没有时间在这里分享。我想我将来会读更多的文档。
<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]