2016-12-15 164 views
1

我試圖在基於spring的項目中創建記錄器策略。Logback滾動日誌記錄不工作

我面臨的問題與滾動政策有關。 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

回答

2

您需要指定ch.qos.logback.core.RollingFileAppender作爲您的appender的類。 FileAppender無法滾動。

+1

替換該通過這個 pringi

+0

嘗試上面的修改後,即使'logfile.log'不管用。還有什麼還需要改變? – abhi314

+0

你有什麼錯誤嗎?也許你的日誌級別不合適? –

1


我相信你缺少%我參數,它應該由滾動文件索引(即 'mylog.2017-03-13。的.txt',「mylog.2017更換-03-13。 .TXT」等)

另外,像烏韋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>