0
我想按需清理日誌文件。 我有批次運行的應用程序..我想在每批運行的開始清理日誌文件。按需清理日誌文件?
是否有一個「日誌記錄」的方法,或者我必須做一個shell命令。 shell命令是否會干擾「logging」模塊所保存的文件描述符。
覆蓋模式不會工作,我想按需要做。
我想按需清理日誌文件。 我有批次運行的應用程序..我想在每批運行的開始清理日誌文件。按需清理日誌文件?
是否有一個「日誌記錄」的方法,或者我必須做一個shell命令。 shell命令是否會干擾「logging」模塊所保存的文件描述符。
覆蓋模式不會工作,我想按需要做。
這不是開箱即用的,因爲這是一個相當不尋常的(以免說「奇怪」)用例。日誌不應該只是被刪除並立即被覆蓋 - 他們這樣沒用。你可能會更好旋轉,而不是日誌:
h = logging.handlers.RotatingFileHandler(<...>)
<logger>.addHandler(h)
<...>
for <batch> in <batches>:
<...>
h.doRollover()
這就是說,你要求是可能與FileHandler
非公開方法,以在處理程序的初始化,通常打開日誌:
h = logging.FileHandler(mode='w', <...>) #or use whatever else creates a FileHandler, e.g. basicConfig()
<...>
h.close() #needed because it prevents side effects from the old descriptor
#(e.g. garbage from unflushed writes, sharing violation)
h._open()