【问题标题】:Why can't I log exceptions using logging.info?为什么我不能使用 logging.info 记录异常?
【发布时间】:2016-05-19 23:44:12
【问题描述】:

例如,下面这段代码按预期工作:

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 中都有相同的用法,所以我不确定为什么它们会产生不同的结果。

【问题讨论】:

标签: python exception logging


【解决方案1】:

您可能需要将记录器配置为在 INFO 级别记录,默认只有警告。

参考:docs.python.org/2/howto/logging.html#when-to-use-logging "默认级别是 WARNING ..."

您可能想看看使用类似https://docs.python.org/2/howto/logging.html#logging-to-a-file 的东西来进行初始记录器配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    相关资源
    最近更新 更多