Java 文件名中带有时间戳的Logback文件未回滚
我正在使用下面的日志配置。当文件名中包含时间戳时,不会滚动文件。这是因为时间戳中使用了时间引用吗?若我从文件名中删除时间戳,那个么文件大小将达到10KB 有没有办法在文件名中包含时间戳,同时使滚动工作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}"
<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选项