2013-10-01 41 views
2

我使用下面的代碼登錄如何在Python中正確處理記錄器文件大小?

logging.basicConfig(filename=os.environ['USERPROFILE']+'\\myApp', level=logging.DEBUG, format='%(asctime)s - [Thread-%(thread)d] - [Process-%(process)d] - %(levelname)s - %(funcName)s - %(lineno)d - %(message)s') 

有了這個記錄山楂我們可以實現的記錄文件的大小限制,就像如果日誌文件的大小超過5MB的話,我想它寫在新文件。

在Java中,我們可以提到的文件大小象下面這樣logback.xml

<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
    <maxFileSize>10MB</maxFileSize> 
</triggeringPolicy> 

回答

2

使用RotatingFileHandler。這需要maxBytesbackupCount關鍵字參數。從文檔:

您可以使用maxBytesbackupCount值,以允許該文件 側翻在規定的尺寸。當尺寸將大於 超出時,該文件將關閉,併爲 輸出靜默打開一個新文件。只要當前日誌文件的長度接近 maxBytes,就會發生翻轉;如果maxBytes爲零,則不會發生翻轉。如果 backupCount非零,則系統將通過 將舊的日誌文件保存到文件名後附加擴展名「.1」,「.2」等。對於 示例,其中backupCount爲5,基本文件名爲app.log,則您的 將獲得app.log,app.log.1,app.log.2,最高爲app.log.5。正在寫入的文件 始終是app.log。當這個文件被填充時,它被關閉並且重命名爲app.log.1,並且如果文件app.log.1,app.log.2, 等存在,則它們被重命名爲app.log.2, app.log.3等 。

相關問題