logging.fatal和logging.critical有什么区别?

Ale*_*exC 10 python logging

logging.fatal和logging.critical有什么区别?在Python 3.4中,两者似乎都表现得完全相同.是否因为某种向后兼容性而保留?

Mar*_*ers 17

logging.FATALlogging.CRITICALlogging包的第一次提交到Python存储库一直等于.

这是出于兼容性原因; Java log4j包(这是该模块的关键影响因素之一)FATAL用作最高级别,但Python觉得这个名字CRITICAL更好地反映了这种情况.

请参阅PEP 282 A Logging System,这是将Python添加logging到Python 的Python增强建议:

术语CRITICAL优先于FATAL使用,FATAL由log4j使用.这些级别在概念上是相同的 - 严重或非常严重的错误.然而,FATAL意味着死亡,在Python中意味着一个被提升和未被捕获的异常,追溯和退出.由于日志记录模块不会从FATAL级日志条目强制执行此类结果,因此使用CRITICAL优先于FATAL是有意义的.


And*_*ndy 6

FATAL和之间没有区别CRITICAL.它们具有相同的价值:

import logging

print logging.FATAL
print logging.CRITICAL
Run Code Online (Sandbox Code Playgroud)

输出:

50
50
Run Code Online (Sandbox Code Playgroud)

PEP-282解释了术语:

术语CRITICAL优先于FATAL使用,FATAL由log4j使用.这些级别在概念上是相同的 - 严重或非常严重的错误.然而,FATAL意味着死亡,在Python中意味着一个被提升和未被捕获的异常,追溯和退出.由于日志记录模块不会从FATAL级日志条目强制执行此类结果,因此使用CRITICAL优先于FATAL是有意义的.