fix: logger工厂支持环境变量配置日志级别(CR意见)

This commit is contained in:
AL76
2025-03-15 17:17:38 +08:00
parent 7c57e87378
commit ce7c435e12
2 changed files with 15 additions and 5 deletions

View File

@@ -1,8 +1,12 @@
from loguru import logger from loguru import logger
from typing import Dict, Optional, Union, List from typing import Dict, Optional, Union, List
import sys import sys
import os
from types import ModuleType from types import ModuleType
from pathlib import Path from pathlib import Path
from dotenv import load_dotenv
load_dotenv()
# 保存原生处理器ID # 保存原生处理器ID
default_handler_id = None default_handler_id = None
@@ -110,7 +114,7 @@ def get_module_logger(
# 控制台处理器 # 控制台处理器
console_id = logger.add( console_id = logger.add(
sink=sys.stderr, sink=sys.stderr,
level=console_level or current_config["console_level"], level=os.getenv("CONSOLE_LOG_LEVEL", console_level or current_config["console_level"]),
format=current_config["console_format"], format=current_config["console_format"],
filter=lambda record: record["extra"].get("module") == module_name, filter=lambda record: record["extra"].get("module") == module_name,
enqueue=True, enqueue=True,
@@ -125,7 +129,7 @@ def get_module_logger(
file_id = logger.add( file_id = logger.add(
sink=str(log_file), sink=str(log_file),
level=file_level or current_config["file_level"], level=os.getenv("FILE_LOG_LEVEL", file_level or current_config["file_level"]),
format=current_config["file_format"], format=current_config["file_format"],
rotation=current_config["rotation"], rotation=current_config["rotation"],
retention=current_config["retention"], retention=current_config["retention"],
@@ -159,7 +163,7 @@ def remove_module_logger(module_name: str) -> None:
# 添加全局默认处理器(只处理未注册模块的日志--->控制台) # 添加全局默认处理器(只处理未注册模块的日志--->控制台)
DEFAULT_GLOBAL_HANDLER = logger.add( DEFAULT_GLOBAL_HANDLER = logger.add(
sink=sys.stderr, sink=sys.stderr,
level="SUCCESS", level=os.getenv("DEFAULT_CONSOLE_LOG_LEVEL", "SUCCESS"),
format=( format=(
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | " "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | " "<level>{level: <8}</level> | "
@@ -178,7 +182,7 @@ other_log_dir.mkdir(parents=True, exist_ok=True)
DEFAULT_FILE_HANDLER = logger.add( DEFAULT_FILE_HANDLER = logger.add(
sink=str(other_log_dir / f"{{time:YYYY-MM-DD}}.log"), sink=str(other_log_dir / f"{{time:YYYY-MM-DD}}.log"),
level="DEBUG", level=os.getenv("DEFAULT_FILE_LOG_LEVEL", "DEBUG"),
format=( format=(
"{time:YYYY-MM-DD HH:mm:ss} | " "{time:YYYY-MM-DD HH:mm:ss} | "
"{level: <8} | " "{level: <8} | "

View File

@@ -27,3 +27,9 @@ DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1
DEEP_SEEK_KEY= DEEP_SEEK_KEY=
CHAT_ANY_WHERE_KEY= CHAT_ANY_WHERE_KEY=
SILICONFLOW_KEY= SILICONFLOW_KEY=
# 定义日志相关配置
CONSOLE_LOG_LEVEL=INFO # 自定义日志的默认控制台输出日志级别
FILE_LOG_LEVEL=DEBUG # 自定义日志的默认文件输出日志级别
DEFAULT_CONSOLE_LOG_LEVEL=SUCCESS # 原生日志的控制台输出日志级别nonebot就是这一类
DEFAULT_FILE_LOG_LEVEL=DEBUG # 原生日志的默认文件输出日志级别nonebot就是这一类