Java 仅logback.xml日期
我不熟悉编码和stackoverflow,我们使用logback来记录我们的应用程序,现在我们使用{fileName}.%d{yyyy-MM-dd}.log命名约定作为基于时间的滚动策略(每天滚动一次),并将日志存储在应用程序中的最长时间设置为30天。我们需要将命名约定更改为仅日期格式({fileName}.%d{dd}.log)。但是我们得到了“fileNamePattern中的日期格式将导致归档日志文件的名称发生冲突。”错误Java 仅logback.xml日期,java,logging,logback,Java,Logging,Logback,我不熟悉编码和stackoverflow,我们使用logback来记录我们的应用程序,现在我们使用{fileName}.%d{yyyy-MM-dd}.log命名约定作为基于时间的滚动策略(每天滚动一次),并将日志存储在应用程序中的最长时间设置为30天。我们需要将命名约定更改为仅日期格式({fileName}.%d{dd}.log)。但是我们得到了“fileNamePattern中的日期格式将导致归档日志文件的名称发生冲突。”错误 %d{yyyy-MM-dd HH:MM:ss}[%threa
%d{yyyy-MM-dd HH:MM:ss}[%thread]-5级别%logger{36}-%msg%n
日志/deliveryService.log
%d{HH:mm:ss.SSS}[%thread]-5级别%logger{35}-%msg%n
日志/deliveryService.%d{yyyy-MM-dd}.log
30
因为在2月份这样的月份,只有28/29天,在30天的窗口中,您将拥有deliveryService.01.log和deliveryService.02.log文件两次。到目前为止您尝试和研究了什么?尝试过提供logs/deliveryService。%d{dd}.log因为文件名是用每月的一天的名称构造的,(deliveryService.%d{dd}.log),如果您有30天的日志保留期,则2月1日您的文件为deliveryService.01.log,2月2日为deliveryService.02.log,依此类推。28天后,2月28日您将获得deliveryService.28.log,但第二天是3月1日,您将再次获得deliveryService.01.log,但由于自窗口开始以来仅过了29天,y您无法删除已存在的deliveryService.01.log,因此发生冲突。因此,可能的解决方案是使用28,除非您确实需要保留最后30天的日志记录。
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<appender name="dailyRollingFileAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/deliveryService.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>logs/deliveryService.%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- Delete log after 30 days -->
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<!-- Send logs to both console and file audit -->
<logger name="com.bnsf" level="debug"
additivity="false">
<appender-ref ref="dailyRollingFileAppender" />
<appender-ref ref="STDOUT" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>