mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 09:40:30 +08:00
Fix: downgrade SSL APPLICATION_DATA_AFTER_CLOSE_NOTIFY errors to debug level
This commit is contained in:
@@ -93,10 +93,36 @@ def _patch_record(record: "Record") -> None:
|
||||
_loguru = _raw_loguru_logger.patch(_patch_record)
|
||||
|
||||
|
||||
class _SSLDebugFilter(logging.Filter):
|
||||
"""将特定 SSL 错误降级为 DEBUG 级别,避免日志刷屏。"""
|
||||
|
||||
_SSL_IGNORE_PATTERNS = (
|
||||
"APPLICATION_DATA_AFTER_CLOSE_NOTIFY",
|
||||
"SSL: APPLICATION_DATA_AFTER_CLOSE_NOTIFY",
|
||||
)
|
||||
|
||||
def filter(self, record: logging.LogRecord) -> bool:
|
||||
msg = record.getMessage()
|
||||
for pattern in self._SSL_IGNORE_PATTERNS:
|
||||
if pattern in msg:
|
||||
record.levelno = logging.DEBUG
|
||||
record.levelname = "DEBUG"
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
class _LoguruInterceptHandler(logging.Handler):
|
||||
"""将 logging 记录转发到 loguru。"""
|
||||
|
||||
def emit(self, record: logging.LogRecord) -> None:
|
||||
# 检查是否需要降级 SSL 相关错误
|
||||
msg = record.getMessage()
|
||||
for pattern in _SSLDebugFilter._SSL_IGNORE_PATTERNS:
|
||||
if pattern in msg:
|
||||
record.levelno = logging.DEBUG
|
||||
record.levelname = "DEBUG"
|
||||
break
|
||||
|
||||
try:
|
||||
level: str | int = _loguru.level(record.levelname).name
|
||||
except ValueError:
|
||||
@@ -179,6 +205,8 @@ class LogManager:
|
||||
"asyncio": logging.WARNING,
|
||||
"tzlocal": logging.WARNING,
|
||||
"apscheduler": logging.WARNING,
|
||||
"quart": logging.WARNING,
|
||||
"hypercorn": logging.WARNING,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user