我有一个脚本,通过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