我有一個腳本,通過python日誌記錄模塊給我發送消息:logging.debug("a message here")
。然而當我運行linux命令python3 myscript.py -v >> log.txt
時,我收到一個空白文件。我怎樣才能讓調試信息輸出到日誌文件?我如何獲得python logging.debug()消息輸出到標準輸出?
2
A
回答
2
默認情況下,logging
模塊記錄到sys.stderr
。捕獲液流2,stderr
代替:
python3 myscript.py -v 2>> log.txt
也可以重定向既stdin
和stderr
到相同的文件:
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)
1
將您的日誌級別設置爲正在調試。
Logger.setLevel(Logger.DEBUG)
參見其中他們陳述爲logging文檔:
設置此記錄器LVL的閾值。記錄不如lvl嚴重的消息將被忽略。當創建記錄器時,級別設置爲NOTSET(當記錄器是根記錄器時會導致所有消息處理,或者當記錄器是非根記錄器時將其委派給父項)。請注意,根記錄器是使用級別WARNING創建的。
+0
啊,我糾正了。 –
相關問題
- 1. CreateProcessWithLogonW得到標準輸出
- 2. 如何獲得輸出發送到標準輸出到字符串
- 3. 如何回顯標準輸出到標準輸出
- 4. Logstash輸出:標準輸出
- 5. 沒有獲得標準輸出
- 6. Ansible從標準輸出獲得列
- 7. 在Python中的流標準輸出/標準輸出
- 8. 共享庫輸出到標準輸出
- 9. Python標準輸出和子
- 10. Python - Supervisor如何登錄標準輸出 -
- 11. 從Python Gnome Applet獲取標準輸出
- 12. 的Python:捕獲從subprocess.call的輸出與標準輸出
- 13. 得到的execfile標準輸出上塊
- 14. 根據標準輸出消息,bash腳本發出嘟嘟聲
- 15. 如何處理標準輸入到標準輸出在PHP?
- 16. 如何從CreateProcessWithLogonW獲取標準輸出?
- 17. 如何捕獲clojure的標準輸出?
- 18. 如何防止java.util.logging.Logger在標準輸出上顯示消息?
- 19. python子流程輸出到標準輸出
- 20. 標準輸出到Python中的文件
- 21. 標準輸出到tkinter GUI
- 22. 寫到標準輸出
- 23. 輸出文件到標準輸入
- 24. 如何從msbuild輸出消息到VS輸出窗口?
- 25. 是否有可能輸出到監視流而不是標準輸入,標準輸出和標準錯誤? (python)
- 26. 如何使GCC輸出到標準輸出?
- 27. 如何讓Yardoc輸出到標準輸出?
- 28. 標準輸入/輸出流
- 29. 如何消除Python中的subprocess.Popen的標準輸出?
- 30. bash,如何標準輸出到文件
與downvote無關 - 您還可以配置記錄器直接寫入文件。我不確定這是否會更好。 – Murph