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]
而后者则没有。
要在 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]
而后者则没有。