This commit is contained in:
SengokuCola
2025-06-15 13:45:49 +08:00
2 changed files with 35 additions and 33 deletions

View File

@@ -20,6 +20,7 @@ LOG_DIR.mkdir(exist_ok=True)
_file_handler = None
_console_handler = None
def get_file_handler():
"""获取文件handler单例"""
global _file_handler
@@ -38,6 +39,7 @@ def get_file_handler():
_file_handler.setLevel(getattr(logging, file_level.upper(), logging.INFO))
return _file_handler
def get_console_handler():
"""获取控制台handler单例"""
global _console_handler
@@ -155,7 +157,7 @@ def load_log_config():
"color_text": "title",
"log_level": "INFO", # 全局日志级别(向下兼容)
"console_log_level": "INFO", # 控制台日志级别
"file_log_level": "DEBUG", # 文件日志级别
"file_log_level": "DEBUG", # 文件日志级别
"suppress_libraries": [],
"library_log_levels": {},
}
@@ -260,7 +262,7 @@ def reconfigure_existing_loggers():
original_handlers = logger_obj.handlers[:]
for handler in original_handlers:
# 安全关闭handler
if hasattr(handler, 'close'):
if hasattr(handler, "close"):
handler.close()
logger_obj.removeHandler(handler)
@@ -793,7 +795,7 @@ def get_current_log_levels():
return {
"console_level": console_level,
"file_level": file_level,
"root_level": logging.getLevelName(logging.getLogger().level)
"root_level": logging.getLevelName(logging.getLogger().level),
}
@@ -1004,7 +1006,7 @@ def shutdown_logging():
# 关闭所有handler
root_logger = logging.getLogger()
for handler in root_logger.handlers[:]:
if hasattr(handler, 'close'):
if hasattr(handler, "close"):
handler.close()
root_logger.removeHandler(handler)
@@ -1013,10 +1015,10 @@ def shutdown_logging():
# 关闭所有其他logger的handler
logger_dict = logging.getLogger().manager.loggerDict
for name, logger_obj in logger_dict.items():
for _name, logger_obj in logger_dict.items():
if isinstance(logger_obj, logging.Logger):
for handler in logger_obj.handlers[:]:
if hasattr(handler, 'close'):
if hasattr(handler, "close"):
handler.close()
logger_obj.removeHandler(handler)