例如,下面这段代码按预期工作:
import logging
import sys
def infologAllUncaught(exc_type, exc_value, exc_traceback):
logging.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = infologAllUncaught
raise Exception("WOAH THERE!")
返回:
ERROR:root:Uncaught exception
Traceback (most recent call last):
File "C:\dev\proj\cedu_ui\product\trunk\test\tools\genie\genie\logging_test2.py", line 9, in <module>
raise Exception("WOAH THERE!")
Exception: WOAH THERE!
然而,这段代码没有返回任何内容。
import logging
import sys
def infologAllUncaught(exc_type, exc_value, exc_traceback):
logging.info("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = infologAllUncaught
raise Exception("WOAH THERE!")
似乎除了logging.exception之外的所有日志记录方法在API中具有相同的用法,因此我不确定为什么这些方法会产生不同的结果。
答案 0 :(得分:2)
您可能需要将记录器配置为记录INFO级别,默认值仅为WARNING。
参考:docs.python.org/2/howto/logging.html#when-to-use-logging&#34;默认级别为警告......&#34;
您可能希望使用类似https://docs.python.org/2/howto/logging.html#logging-to-a-file之类的内容来执行初始记录器配置。