首页 > 解决方案 > 芹菜python记录器问题

问题描述

下面的日志记录系统片段适用于 django 应用程序,其日志遵循所需的甲酸盐,但在 celery 应用程序中失败

logging.config.dictConfig(
    {
        "version": 1,
        "disable_existing_loggers": False,
        "formatters": {
            "json": {
                "format": "%(name)s %(module)s %(filename)s %(funcName)s %(lineno)d %(message)s ",
                "class": "pythonjsonlogger.jsonlogger.JsonFormatter",
            }
        },
        "handlers": {"json": {"class": "logging.StreamHandler", "formatter": "json"}},
        "loggers": {
            "": {"handlers": ["json"], "level": logging.DEBUG}  # Set log level info
        },
    }
)


configure(
    context_class=threadlocal.wrap_dict(dict),
    logger_factory=stdlib.LoggerFactory(),
    wrapper_class=stdlib.BoundLogger,
    processors=[
        stdlib.filter_by_level,
        stdlib.add_logger_name,
        stdlib.add_log_level,
        stdlib.PositionalArgumentsFormatter(),
        processors.TimeStamper(fmt="iso"),
        processors.StackInfoRenderer(),
        processors.format_exc_info,
        processors.UnicodeDecoder(),
        stdlib.render_to_log_kwargs,
    ],
)

log = structlog.getLogger(__name__)
log.info('Log content', input='some input')

在我的 celery 独立应用程序的情况下,这会失败。基本上,pythonjsonlogger 配置没有生效。日志带有默认记录器设置。我是不是错过了什么。任何帮助表示赞赏,谢谢

标签: pythonloggingcelerypython-logging

解决方案


推荐阅读