当我尝试使用 logging.disable 时遇到 TypeError(通过 ATBS 调试章节)
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s \
- %(message)s')
logging.disable(logging.critical)
logging.debug('Start of program')
...
logging.debug('End of program')
结果
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1685, in isEnabledFor
KeyError: 10
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:/Coding/Learning/ATBS/loggingtest.py", line 5, in <module>
logging.debug('Start of program')
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 2080, in debug
root.debug(msg, *args, **kwargs)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1421, in debug
if self.isEnabledFor(DEBUG):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\logging\__init__.py", line 1689, in isEnabledFor
if self.manager.disable >= level:
TypeError: '>=' not supported between instances of 'function' and 'int'
如果我没有输入 logging.disable
行,则程序运行并将日志输出到控制台正常。知道为什么要这样做,我该如何解决?
答案 0 :(得分:1)
只是过了一会儿就想通了。 logging.critical 和 logging.CRITICAL 是不同的东西。 logging.disable(logging.critical)
导致错误,logging.disable(logging.CRITICAL)
按预期工作。呸!
答案 1 :(得分:0)
尝试用 logging.disable(logging.CRITICAL)
代替 logging.disable(logging.critical)
。
logging.CRITICAL 是调试消息的级别,而 logging.critical 是用于记录关键消息的方法。