Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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.xml日期_Java_Logging_Logback - Fatal编程技术网

Java 仅logback.xml日期

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

我不熟悉编码和stackoverflow,我们使用logback来记录我们的应用程序,现在我们使用{fileName}.%d{yyyy-MM-dd}.log命名约定作为基于时间的滚动策略(每天滚动一次),并将日志存储在应用程序中的最长时间设置为30天。我们需要将命名约定更改为仅日期格式({fileName}.%d{dd}.log)。但是我们得到了“fileNamePattern中的日期格式将导致归档日志文件的名称发生冲突。”错误


%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>