尝试禁用日志记录时出现类型错误

时间:2021-01-21 17:06:00

标签: python debugging logging

当我尝试使用 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 行,则程序运行并将日志输出到控制台正常。知道为什么要这样做,我该如何解决?

2 个答案:

答案 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 是用于记录关键消息的方法。

相关问题