python-3.x - 在 Python 3 中记录异常

标签 python-3.x logging

我有以下几点:

### running with Python 3 
import logging 
logger = logging.getLogger(__name__)                                                                                                              
logger.setLevel('DEBUG')                                                                           
logger.exception('this is an exception')                                  

输出是:
this is an exception
NoneType: None

我需要做什么才能摆脱“NoneType:None”输出?

最佳答案

标准库 logging is trying to append the exception info ,但您没有任何异常信息,因为您不是从 except: 内登录的堵塞。 NoneType: None最终来自sys.exc_info()的结果调用,日志记录不会检查它们是否有效。

跛脚解决方法:

logger.exception('this is an exception', exc_info=False)

少一点蹩脚:
logger.error('this is an exception...haha not really')

最好的事物:
try:
    # risky code
except Exception:
    logger.exception('this is an exception')

如果您有一个较早捕获的异常实例,并且您想记录它,并且您不在一个 except 块中,这将做正确的事情:
logger.exception('this is an exception', exc_info=myerror)

关于python-3.x - 在 Python 3 中记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53162817/

相关文章:

python在环境变量路径中引发语法错误

logging - 命令行模式下 Rasa 的日志

python 列表值中的数字格式

python-3.x - 使用 `pip3` 安装了 python 包,但是当我调用它时,我得到 "No module named X"

java - Java 中的继承属性。新实例?

string - 通过保持相同序列合并相似文本的算法(例如 : deduplicate log file)

java - 我是否正确设置了 log4j home 系统变量(用于类路径)?

java - Maven - 与 JavaME、JavaSE 和 Android 模块共享多模块项目的记录器

python - reStructuredText 文档字符串中的多个返回值 (Python 3)

python - 嵌套类装饰器也是描述符类