Python中logging.warn和logging.warning有什么区别?

116 投票
2 回答
43477 浏览
提问于 2025-04-17 19:50

在这个链接 http://docs.python.org/2/howto/logging.html 的示例中,使用了 warnwarning 这两个词。

2 个回答

44

在Python 3.3之前,它们是一样的,不过现在warn这个功能已经不推荐使用了:

>>> import logging
>>> logging.warn is logging.warning
True
159

logging.warn 从 Python 3.3 开始就不推荐使用了,应该用 logging.warning

在 Python 3.3 之前,logging.warnlogging.warning 是同一个功能,但 logging.warn 没有被详细记录,这在 Python 的问题追踪系统中有提到过,具体可以查看这个链接 http://bugs.python.org/issue13235

这是故意的。最初的代码(在被纳入 Python 之前)有 warn(),为了兼容旧版本才保留了这个函数。文档中提到 warning() 是因为大家应该使用这个。方法名称与相应的日志级别名称的小写形式相对应。

logging.warn() 是为了兼容旧版本而保留的,但 添加了一个不推荐使用的警告。大家应该使用 logging.warning()

撰写回答