【发布时间】:2021-12-28 18:47:47
【问题描述】:
我有一个“基本”日志配置,可以在我的项目中记录到标准输出。
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
SERVER_FORMAT = "[%(asctime)s] %(levelname)s [%(name)s:%(filename)s:%(lineno)d] %(message)s"
DATETIME_FORMAT = "%d/%b/%Y %H:%M:%S"
logging.basicConfig(
level=logging.INFO,
format=SERVER_FORMAT,
datefmt=DATETIME_FORMAT,
handlers=[stream_handler])
我还有另一个记录器user_logger,它不应该打印任何东西。相反,它应该将日志条目存储在一个变量中。
user_logger = logging.getLogger('user_logger')
user_logger.setLevel(logging.INFO)
log_capture_string = io.StringIO()
log_capture_string_handler = logging.StreamHandler(log_capture_string)
log_capture_string_handler.setLevel(logging.INFO)
log_capture_string_handler.setFormatter(logging.Formatter(USER_FORMAT))
user_logger.handlers = [log_capture_string_handler]
问题是当我打电话时:
user_logger.info('This should only be in "log_capture_string"')
它将它打印到控制台。
你知道如何避免这种情况吗?
【问题讨论】:
标签: python logging python-logging