Python 2 和 Python 3 之间的日志记录级别兼容性列表

List of logging levels compatibility between Python 2 and Python 3

要在 Python 2 中获得日志记录级别列表,我必须这样调用:

logging._levelNames.keys()

虽然 Python 3 日志模块有这个:

list(logging._nameToLevel)

我只是将 six 添加到我的项目中以提供 Python 2 和 Python 3 之间的兼容性。解决此兼容性问题的最简洁方法是什么?

你不应该故意访问一个 attribute that starts with a _,这通常意味着它是一个私有属性,不应该在其他地方使用。

由于日志记录级别只是一个简短的列表,您可以只复制粘贴并创建自己的列表:

levels = ['CRITICAL', 'FATAL', 'ERROR', 'WARN', 'WARNING', 'INFO', 'DEBUG', 'NOTSET']

顺便说一句,如果你注意到了,logging._levelNames.keys()list(logging._nameToLevel) 提供了不同的结果,前者还包含一些整数 [0, 10, 20, 30, 40, 50] 而后者则没有。