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) |