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