【问题标题】:Logback rolling logging not workingLogback 滚动日志记录不起作用
【发布时间】:2017-05-01 03:12:56
【问题描述】:

我正在尝试在基于 spring 的项目中创建记录器策略。

我面临的问题与滚动政策有关。 logfile.log 已创建并且工作正常,但未创建滚动文件 rollingfile.log.%d{yyyy-MM-dd}.log

下面是我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="30 seconds">
    <property name="LOG_PATH" value="D:/coinLogs" />
    <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" />

    <appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender">
        <layout>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n</pattern>
        </layout>
    </appender>

    <appender name="File-Appender" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_PATH}/logfile.log</file>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n
            </pattern>
            <outputPatternAsHeader>true</outputPatternAsHeader>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log.%d{yyyy-MM-dd}.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>


    <logger name="coinPay.logbackxml" level="info" additivity="false">
        <appender-ref ref="Console-Appender" />
        <appender-ref ref="File-Appender" />
    </logger>

    <!-- To remove extra hibernate logs -->
    <logger name="org.hibernate">
        <level value="info" />
    </logger>

    <root>
        <appender-ref ref="Console-Appender" />
        <appender-ref ref="File-Appender" />
    </root>

</configuration>

任何帮助将不胜感激。提前谢谢你:D

【问题讨论】:

    标签: java spring logging logback


    【解决方案1】:

    您需要将 ch.qos.logback.core.rolling.RollingFileAppender 指定为 appender 的类。 FileAppender 不能滚动。

    【讨论】:

    • 用这个 替换这个
    • 在尝试上述更改后,即使“logfile.log”也无法正常工作。还有什么需要改变的吗?
    • 您有任何错误吗?也许你的日志级别不合适?
    【解决方案2】:


    我相信您缺少 %i 参数,应将其替换为滚动文件索引(即'mylog.2017-03-13.0.txt', 'mylog.2017-03-13.1.txt'等)

    此外,与 Uwe Allner 一样,我使用的是 RollingFileAppender 而不是 FileAppender。
    (我还建议在配置中添加一个 totalSizeCap,以控制总大小)

    这是我的整个 appender 配置:

    <appender name="SQL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/mylog.txt</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level- %msg%n
            </Pattern>
        </encoder>
    
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <maxHistory>3</maxHistory>
            <totalSizeCap>5GB</totalSizeCap>
            <fileNamePattern>${LOG_HOME}/archived/mylog.%d{yyyy-MM-dd}.%i.txt.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 2021-11-19
      • 2015-01-09
      • 1970-01-01
      • 2018-08-24
      • 2011-12-27
      相关资源
      最近更新 更多