将 stacklevel 与 log.error 一起使用会产生此错误。 前任:

logger = logging.getLogger('tcpserver')
logger.error("Connection problem", stack_info=sys.exc_info(), stacklevel=1)

而根据文档: kwargs 中有四个关键字参数被检查:exc_info、stack_info、stacklevel 和 extra。

请参阅https://docs.python.org/3/library/logging.html#logging.Logger.debug

#1楼 票数:3 已采纳

您正在查看的文档与解释器的版本不匹配。 它也很好地记录在案: https : //docs.python.org/3.8/library/logging.html#logging.Logger.debug

在 3.8 版更改: 添加了 stacklevel 参数。

要么升级你的解释器,要么使用匹配的文档,例如: https : //docs.python.org/3.7/library/logging.html#logging.Logger.debug (通常不要忘记检查底部的 API 更改说明很有用,也为了与其他可能的用户及其环境兼容)。

  ask by abhijeet kaurav translate from so

未解决问题?本站智能推荐:

2回复

显示错误消息的正确方法

根据Python的Logging教程 , logging.error将用于“在不引发异常的情况下报告对错误的抑制”。而如果我想报告错误,则应该仅引发异常,而根本不使用logging 。 如果我要报告一个错误然后引发异常该怎么办? 例如: 这导致将以下行打印为标准错误:
13回复

如何使用调试信息记录 Python 错误?

我正在使用logging.error将 Python 异常消息打印到日志文件: 是否可以打印有关异常和生成它的代码的更多详细信息,而不仅仅是异常字符串? 诸如行号或堆栈跟踪之类的东西会很棒。
1回复

我们故意引发异常时应记录错误

我做了一个自定义的异常,所以我的问题是在引发错误之前我应该​​记录该错误。
1回复

在Jinja扩展程序中进行优美的错误处理和日志记录

我正在开发一个Jinja扩展程序,该扩展程序执行一些可能有害的操作,该扩展程序在失败时将引发Exception,该Exception包含一些有关错误原因的信息。 当发生这种情况时,当然,异常将阻止Jinja完成其渲染过程,并返回None而不是渲染结果。 使用try / catch语句并返
1回复

我可以在我的GAE应用程序中收到有关错误的电子邮件通知吗?

当然, except发送有关发生错误的电子邮件通知except ,我可以使用try and on。 但是,有没有更好(更通用)的方法呢? 发生任何时间异常(例如,严重性最低为ERROR )-要发送电子邮件吗? 是否有任何现成的解决方案,或者我必须获取日志并对其进行解析,以便进行防爆处理
2回复

为什么'var'%{1:'variable'}打印'var'而不是像'var'%(1,)那样引发TypeError错误?

我正在调试调试模块,并且依靠try ... catch来检测TypeError并正确记录我的消息的格式,然后,我注意到当传递字典时,Python不会引发传统异常。 这是使用日志记录模块的最小示例: import logging class SmartLogRecord(logging
2回复

如何获取“不是在格式化字符串时转换的所有参数”的记录TypeError的行号?

如果我使用内置的python日志记录机制,但我犯了一个错误,例如: 然后我收到一条无用的错误消息: 鉴于我有大量的日志记录语句,是否有任何方法可以获得更有用的错误消息-一种显示发生错误的行号的方法?
1回复

脚本失败时记录时间和错误的python函数

我正在使用python3。 我想在一行中打印脚本失败的时间以及相应的异常。 参照此链接和这一个,我想这样的事情,但功能没有执行。 我在这里做错了吗? 将不胜感激的建议。 import atexit import datetime #define function to log when scri