Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件名中带有时间戳的Logback文件未回滚_Java_Logging_Logback_Logback Classic - Fatal编程技术网

Java 文件名中带有时间戳的Logback文件未回滚

Java 文件名中带有时间戳的Logback文件未回滚,java,logging,logback,logback-classic,Java,Logging,Logback,Logback Classic,我正在使用下面的日志配置。当文件名中包含时间戳时,不会滚动文件。这是因为时间戳中使用了时间引用吗?若我从文件名中删除时间戳,那个么文件大小将达到10KB 有没有办法在文件名中包含时间戳,同时使滚动工作 <timestamp key="startTime" datePattern="yyyyMMdd_HHmmss" timeReference="contextBirth"> <property name="logFileName" value="xyz_${startTime}"

我正在使用下面的日志配置。当文件名中包含时间戳时,不会滚动文件。这是因为时间戳中使用了时间引用吗?若我从文件名中删除时间戳,那个么文件大小将达到10KB

有没有办法在文件名中包含时间戳,同时使滚动工作

<timestamp key="startTime" datePattern="yyyyMMdd_HHmmss" timeReference="contextBirth">
<property name="logFileName" value="xyz_${startTime}">
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logFileName}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${logFileName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10KB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
        <pattern>%date %level %logger{35} %msg%n%rEx</pattern>
    </encoder>
</appender>

${logFileName}.log
${logFileName}.%d{yyyy-MM-dd}.%i.log
10KB
%日期%level%logger{35}%msg%n%rEx

我解决了这个问题。有两个附加器具有相同的文件名。所以重命名失败了

下面的描述帮助了我

File/FileNamePattern选项的值“…”与 先前定义的appender[…]

如果先前定义的FileAppender/RollingFileAppender具有相同的 文件选项作为当前追加器,则这两个追加器处于 由于FileAppender实例不能共享相同的输出,因此发生冲突 目标。为防止数据丢失,当前追加器将不会启动。 确保每个appender都有一个唯一的文件选项

类似地,相同的限制也适用于FileNamePattern选项 RollingFileAppender的。确保每个RollingFileAppender都有一个 唯一的FileNamePattern选项