2013-10-21 69 views

回答

2

默認情況下,logging模塊記錄到sys.stderr。捕獲液流2,stderr代替:

python3 myscript.py -v 2>> log.txt 

也可以重定向既stdinstderr到相同的文件:

python3 myscript.py -v >> log.txt 2>&1 

這裏stderr被髮送到相同的輸出stdin(輸出1)被引導至。

這假設您已經設置了日誌級別以允許級別爲DEBUG的消息。

最後但並非最不重要的,你可以告訴logging.basicConfig()登錄到不同的數據流,而不是stderr

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) 

,或者你可以給它一個文件名,這樣,不需要重定向:

logging.basicConfig(filename='log.txt', level=logging.DEBUG) 
+0

與downvote無關 - 您還可以配置記錄器直接寫入文件。我不確定這是否會更好。 – Murph

1

將您的日誌級別設置爲正在調試。

Logger.setLevel(Logger.DEBUG) 

參見其中他們陳述爲logging文檔:

設置此記錄器LVL的閾值。記錄不如lvl嚴重的消息將被忽略。當創建記錄器時,級別設置爲NOTSET(當記錄器是根記錄器時會導致所有消息處理,或者當記錄器是非根記錄器時將其委派給父項)。請注意,根記錄器是使用級別WARNING創建的。

+0

啊,我糾正了。 –