我正在一個項目中記錄一堆文件中的東西,我希望確保我的日誌文件在達到文件的固定限制後立即生效。我有一個低於logback.xml
文件,但它看起來像文件大小不起作用。我看到我的文件大小爲793M,但限制我已經是100M如何根據文件大小保持滾動日誌文件?
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>process.log</file>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>process%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>9</maxIndex>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %msg%n</pattern>
<!-- this improves logging throughput -->
<immediateFlush>true</immediateFlush>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
我在這裏做什麼錯?在採伐方面,我們應該遵循什麼樣的最佳政策?我們在一個文件中記錄了一堆東西,我們不想用這個日誌文件填滿磁盤。
感謝您的示例。最後你有'root level = DEBUG'這是什麼意思一般?如果我使用'INFO',而不是'DEBUG',那麼會發生什麼? – john
將根級別設置爲調試意味着默認情況下,您希望將所有log.debug()調用輸出到文件。如果將其設置爲INFO,則不會在文件中看到DEBUG日誌語句。在Production環境中,通常會將日誌級別提高到WARN以減少輸出的日誌量。我通常在生產環境中使用INFO,並發現這已經足夠了。您可以在您的配置中添加特定的元素以'覆蓋'默認值: –
pczeus
讓我知道這是否解決您的問題,並接受它作爲答案。祝你好運! – pczeus