如何禁用标准错误流上的日志记录?

2024-05-19 11:31:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Python中的标准错误流上禁用logging?这不起作用:

import logging

logger = logging.getLogger()
logger.removeHandler(sys.stderr)
logger.warning('foobar')  # emits 'foobar' on sys.stderr

Tags: import标准onlogging错误stderrsyslogger
3条回答

我找到了一个解决方案:

logger = logging.getLogger('my-logger')
logger.propagate = False
# now if you use logger it will not log to console.

这将防止将日志发送到包含控制台日志的上层记录器

您可以使用:

logging.basicConfig(level=your_level)

其中,您的_级别是:

'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL

因此,如果您将您的_级别设置为logging.CRITICAL,您将只收到以下人员发送的关键消息:

logging.critical('This is a critical error message')

将您的_级别设置为日志记录。调试将显示所有级别的日志记录

有关更多详细信息,请查看logging examples.

以相同的方式更改每个处理程序的级别使用Handler.setLevel()函数

import logging
import logging.handlers

LOG_FILENAME = '/tmp/logging_rotatingfile_example.out'

# Set up a specific logger with our desired output level
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)

# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
          LOG_FILENAME, maxBytes=20, backupCount=5)

handler.setLevel(logging.CRITICAL)

my_logger.addHandler(handler)

我使用:

logger = logging.getLogger()
logger.disabled = True
... whatever you want ...
logger.disabled = False

相关问题 更多 >

    热门问题