62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
# logging_config.py
|
|
import logging
|
|
import logging.config
|
|
from pathlib import Path
|
|
|
|
# 确保 logs 目录存在
|
|
log_dir = Path("logs")
|
|
log_dir.mkdir(exist_ok=True)
|
|
|
|
LOGGING_CONFIG = {
|
|
"version": 1,
|
|
"disable_existing_loggers": False,
|
|
"formatters": {
|
|
"default": {
|
|
"format": "%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s",
|
|
},
|
|
"detailed": {
|
|
"format": "%(asctime)s - %(name)s - %(levelname)s - %(funcName)s - %(message)s",
|
|
}
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "INFO",
|
|
"formatter": "default",
|
|
"stream": "ext://sys.stdout"
|
|
},
|
|
"file": {
|
|
"class": "logging.handlers.RotatingFileHandler", # 自动轮转
|
|
"level": "INFO",
|
|
"formatter": "detailed",
|
|
"filename": "logs/sqlbot.log",
|
|
"maxBytes": 10485760, # 10MB
|
|
"backupCount": 5, # 保留5个备份
|
|
"encoding": "utf8"
|
|
},
|
|
},
|
|
"root": {
|
|
"level": "INFO",
|
|
"handlers": ["console", "file"]
|
|
},
|
|
"loggers": {
|
|
"uvicorn": {
|
|
"level": "INFO",
|
|
"handlers": ["console", "file"],
|
|
"propagate": False
|
|
},
|
|
"uvicorn.error": {
|
|
"level": "INFO",
|
|
"handlers": ["console", "file"],
|
|
"propagate": False
|
|
},
|
|
"uvicorn.access": {
|
|
"level": "WARNING", # 只记录警告以上,避免刷屏
|
|
"handlers": ["file"], # 只写入文件
|
|
"propagate": False
|
|
}
|
|
}
|
|
}
|
|
|
|
# 应用配置
|
|
logging.config.dictConfig(LOGGING_CONFIG) |