0

我正在使用 structlog,并且我将其配置为使用filter_by_level处理器:

    structlog.configure(
    processors = [
        structlog.stdlib.add_log_level,             
        structlog.stdlib.add_log_level_number,      
        structlog.processors.format_exc_info,       
        structlog.stdlib.filter_by_level,
        structlog.processors.JSONRenderer(),        
    ],
    wrapper_class = structlog.stdlib.BoundLogger,
    logger_factory = structlog.PrintLoggerFactory(),
    cache_logger_on_first_use=True,
)

但是当我打电话时logger.setLevel(level)

我得到“PrintLogger 没有属性 setLevel”。

我应该使用不同的记录器工厂吗?我在“_loggers.py”下看不到任何其他记录器

4

1 回答 1

0

是的,如果你想使用返回记录器的标准库方法,你必须使用structlog.stdlib.LoggerFactory().

您当前的配置不使用标准库进行输出。

有关简单而完整的示例,请参阅https://www.structlog.org/en/stable/standard-library.html#rendering-using-logging-based-formatters

于 2021-10-11T08:40:38.117 回答