Python logging 中 Filter 加在 logger 上不会对子 logger 传播的日志生效, 需要加到 Handler 上才能确保所有日志记录都注入 tracking_id 属性。 Made-with: Cursor
@@ -31,7 +31,9 @@ def setup_logging() -> None:
datefmt=_LOG_DATEFMT,
force=True,
)
- logging.getLogger().addFilter(TrackingFilter())
+ tracking_filter = TrackingFilter()
+ for handler in logging.getLogger().handlers:
+ handler.addFilter(tracking_filter)
@asynccontextmanager