這是我的場景:我想記錄my_module的活動。這需要完成,取決於執行的方法(比方說,INPUT和OUTPUT),這取決於兩個不同的文件。Python使用同一個記錄器記錄多個文件
所以我有兩個處理程序,每個處理程序指向一個不同的文件(my_in_.log & my_out_.log),具有相同的日誌級別。我想知道如果我可以使用相同的記錄器來實現這一點,或者我必須定義兩個記錄器。我配置是:
[loggers]
keys=root, my_log
[handlers]
keys=my_in_hand, my_out_hand
[formatters]
keys=generic_form
...
[logger_my_log]
level=NOTSET
handlers=my_in_hand, my_out_hand
qualname=ws_log
[handler_my_in_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_in_.log', 'h', 1, 0, None, False, True)
[handler_my_out_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_out_.log', 'h', 1, 0, None, False, True)
我必須確定每個處理器/目的地的記錄? (因爲我想在不同的文件中記錄不同的信息) 有沒有辦法告訴記錄器哪個處理程序會這樣做?我的意思是,我有一個記錄器的兩個處理程序,然後選擇一個處理程序來記錄一個方法。
Thx很多!
也許我不明白:我不希望我的日誌記錄,以每** **處理程序添加到記錄器。我想要的是選擇哪個處理程序將記錄該記錄,即一個記錄程序 - >兩個處理程序,但選擇記錄將分配到哪個目標。重複使用不同處理程序的同一個記錄程序,但某些記錄將由一個處理程序記錄,還有一些與另一個...這是可能的,或者我必須定義其他記錄器?多謝! :) – 2013-03-04 11:30:33
@AlbertoMegía您應該定義您自己的方法,將日誌目標作爲參數,並在內部使用正確的處理程序來處理日誌消息。 – mike 2013-03-04 11:34:57
所以@mike你的意思是我必須添加和刪除記錄器的處理程序來選擇它在運行時?這可能不是我最好的選擇,因爲這個模塊是我在Web服務中的正面視圖...每次請求我都必須切換處理程序...:S – 2013-03-04 11:41:22