feat(03-02): qy_lty/settings.py LOGGING 注册 access_token_mask filter

- 新增 LOGGING.filters 段,用 dictConfig 工厂语法 "()" 引用 AccessTokenMaskFilter
- LOGGING.handlers.aliyun 与 LOGGING.handlers.console 各加 filters: ['access_token_mask']
- loggers 段 5 条 logger 完全未动 (django / django.request / aiapp / common / userapp)
- Django setup() 不报 ValueError;端到端 logger.info('access_token=...') 输出脱敏 (***...ABCD)
This commit is contained in:
pmc 2026-05-08 10:26:13 +08:00
parent 891a5ead7c
commit 35eb11091f

View File

@ -372,14 +372,25 @@ setup_logging()
LOGGING = { LOGGING = {
'version': 1, 'version': 1,
'disable_existing_loggers': False, 'disable_existing_loggers': False,
# Phase 3 — Access Token 日志脱敏 filterCRED-06
# 挂载策略filter 注册在 LOGGING.filters再由 LOGGING.handlers 引用;
# 不挂在 loggers 段per RESEARCH Pitfall 1挂 logger 仅过滤直接通过该 logger 的 record
# 挂 handler 才统一覆盖所有 logger → handler 路径)
'filters': {
'access_token_mask': {
'()': 'common.logging.filters.AccessTokenMaskFilter',
},
},
'handlers': { 'handlers': {
'aliyun': { 'aliyun': {
'level': 'INFO', 'level': 'INFO',
'class': 'common.aliyun_logging.AliyunLogHandler', 'class': 'common.aliyun_logging.AliyunLogHandler',
'filters': ['access_token_mask'],
}, },
'console': { 'console': {
'level': 'DEBUG', 'level': 'DEBUG',
'class': 'logging.StreamHandler', 'class': 'logging.StreamHandler',
'filters': ['access_token_mask'],
}, },
}, },
'loggers': { 'loggers': {