2016-09-14 78 views
1

在應用程序日誌文件夾中存在具有.1.2.3等擴展名的日誌文件,我不知道爲什麼。還有一個正確名稱的日誌文件,但它是空的。例如:爲什麼會有.1.2.3擴展名的登錄日誌文件?

app.log    │  0│Sep 14 02:12 <--- 
app.log.1   │116350K│Sep 14 10:45 <--- 
app.log.2016-09-10.1│102403K│Sep 10 18:39 
app.log.2016-09-10.2│ 90241K│Sep 11 01:59 
app.log.2016-09-11.0│  0│Sep 11 23:36 
app.log.2016-09-12.0│102401K│Sep 12 04:54 
app.log.2016-09-12.1│102401K│Sep 12 06:13 
app.log.2016-09-12.2│102401K│Sep 12 07:13 
app.log.2016-09-13.0│102403K│Sep 14 02:12 
app.log.2016-09-13.1│102401K│Sep 13 19:49 
app.log.2016-09-13.2│ 75914K│Sep 14 01:59 

偶爾會發生這種情況,沒有任何明顯的原因。

的logback.xml低於:

<configuration scan="true" scanPeriod="15 seconds"> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${log_file}</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>100MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <encoder> 
    <charset>UTF-8</charset> 
     <pattern>%d{ISO8601}|%-25.25t|%-5.5p|%-60.60c|%m%n</pattern> 
    </encoder> 
</appender> 
<root level="DEBUG"> 
    <appender-ref ref="FILE" /> 
</root> 

編輯:在app.log.1的第一個日誌行有時間戳2016-09-14 00:00:00,003

編輯:據@Kiskae建議我修改logback.xml以符合文檔並將logback的版本從1.1.3更新到1.1.7。但它沒有幫助。這是新logback.xml

<configuration scan="true" scanPeriod="15 seconds"> 
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${log_file}</file> 

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 
     <fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern> 
     <maxFileSize>100MB</maxFileSize> 
     <maxHistory>7</maxHistory> 
     <totalSizeCap>200GB</totalSizeCap> 
    </rollingPolicy> 

    <encoder> 
     <charset>UTF-8</charset> 
     <pattern>%d{ISO8601}|%-25.25t|%-5.5p|%-60.60c|%m%n</pattern> 
    </encoder> 

</appender> 


<root level="DEBUG"> 
    <appender-ref ref="FILE" /> 
</root> 

回答

1

<fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern> - 這指定文件名模式,因爲你使用了TimeBasedRollingPolicy rollingPolicy它每天都會創建一個新的日誌文件。所述%i令牌表示遞增的整數,將用於打開一個新文件,如果日誌達到配置maxFileSize

注意「%i」的轉換令牌除了「%d」。 %i和%d代幣都是強制性的。每一個當前日誌文件在當前時間段結束前達到maxFileSize爲時間,它將增加索引歸檔,從0開始。

來源:http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy

+0

我不認爲你回答我的問題。正如你從原始文章中看到的那樣,'TimeBasedRollingPolicy'在大多數時候都能正常工作,因爲它創建了諸如'app.log.2016-09-12.0'和'app.log.2016-09-12.1'等文件。它發生在某個時候,文件'app.log.1'被創建並且日誌被重定向到它並且常規的日誌文件'app.log'保持爲空。你能指點我解釋這種行爲的文檔部分嗎? – miloxe

+1

@miloxe跳出來的唯一事情就是你的定義以一種未在文檔中指定的方式混合3種不同的appender。也許閱讀文檔並重建文件可以解決問題。 – Kiskae

+0

謝謝@Kiskae。我遵照你的建議,根據文件重建了appender。我還將logback版本從1.1.3更新到1.1.7。如果它正在工作,我將在接下來的幾天中檢查日誌文件。 – miloxe