2013-07-10 73 views
2

在log4net中,我們可以將運行時的xml配置文件中的日誌級別從DEBUG更改爲ERROR,例如該更改立即生效。在運行時更改python日誌級別

有沒有辦法在python中做到這一點?我還沒有想出如何去做。

此外,由於某些原因,如果日誌文件設置爲沒有任何文件夾(請參閱配置示例,我在底部使用 - yaml字典配置文件),它無法旋轉文件。如果我將它更改爲其他代碼所在的其他路徑,它就像魅力一樣,並創建20個文件。 我很樂意爲您提供幫助。 謝謝!

詞典配置提取例:

rotatingFile: 
     class : logging.handlers.RotatingFileHandler 
     formatter: jajahFormater 
     level: DEBUG 
     filename: chs.log 
     maxBytes: 20 
     backupCount: 20 

回答

-1

從記錄器級別的docs使用Logger.setLevel()Handler.setLevel()在處理器級別

import logging 

my_logger = logging.getLogger('myloggername') #Assumes you have configured the logger somewhere 
my_logger.setLevel(logging.INFO) 
+1

問題是如何在運行時執行它... – Alon1980

+0

您可以在配置文件中定義它並更改配置文件。但是你必須重啓這個過程。對於_runtime_,我並不知道什麼是開箱即使您可能會觀察配置文件中的更改並在發生這種情況時重新加載日誌記錄。或者,您可以提取已更改的參數'log_level'並調用setLevel()函數。但是,這將不得不在一個觀察者進程或 – RedBaron

1

你真的應該已經張貼了兩個問題。

  1. .NET基礎架構監視配置文件並自動加載它以獲取更改,但Python不會 - 所以您需要自己編寫代碼。
  2. 代碼目錄中的chs.log文件可能會保持打開狀態(例如在編輯器中),這將防止翻轉 - 如果沒有更多信息,我不能分辨。
+0

我使用進程資源管理器來檢查是否有其他句柄到這個文件,他們沒有。 – Alon1980

相關問題