From ce575e6b35e30b471aa76c6eee69eeebe329cd54 Mon Sep 17 00:00:00 2001 From: xiaji Date: Mon, 19 Jan 2026 20:57:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(settings):=20=E6=B7=BB=E5=8A=A0LOGGING?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AE=9E=E7=8E=B0=E7=BB=9F=E4=B8=80=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加标准日志格式配置,支持文件轮转和控制台输出 配置Django核心、请求及Celery相关模块的日志记录 --- diary_family/settings.py | 58 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/diary_family/settings.py b/diary_family/settings.py index 2ab90a9..cf814ef 100644 --- a/diary_family/settings.py +++ b/diary_family/settings.py @@ -183,4 +183,60 @@ CELERY_LOG_FILE = "/var/log/celery/worker.log" # 你的指定日志路径 CELERY_LOG_LEVEL = "INFO" # 日志级别 CELERY_BROKER_URL = 'redis://:xjjq1234!@localhost:6379/0' -CELERY_RESULT_BACKEND = 'redis://:xjjq1234!@localhost:6379/0' \ No newline at end of file +CELERY_RESULT_BACKEND = 'redis://:xjjq1234!@localhost:6379/0' + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, # 不关闭已存在的日志器 + 'formatters': { + 'standard': { # 统一的标准日志格式 + 'format': '[%(asctime)s] [%(levelname)s] [%(process)d] [%(module)s] %(message)s', + 'datefmt': '%Y-%m-%d %H:%M:%S' + }, + }, + 'handlers': { + 'file': { # 日志写入文件的处理器 + 'level': 'INFO', # 日志级别:INFO及以上都记录(ERROR/WARNING/INFO) + 'class': 'logging.handlers.RotatingFileHandler', # 日志轮转,防止文件过大 + # ✅ 核心:pathlib对象转字符串,logging只接收字符串路径,必转! + 'filename': str(LOG_DIR / 'all_in_one.log'), + 'maxBytes': 1024 * 1024 * 100, # 单个日志文件最大100MB + 'backupCount': 10, # 最多保留10个日志备份 + 'formatter': 'standard', # 使用上面定义的统一格式 + 'encoding': 'utf-8', # 编码,防止中文乱码 + }, + 'console': { # 兼容控制台输出(开发调试用,不影响生产) + 'level': 'INFO', + 'class': 'logging.StreamHandler', + 'formatter': 'standard' + }, + }, + # 所有日志器配置和原配置完全一致,无需任何修改 + 'loggers': { + 'django': { # Django核心日志 + 'handlers': ['file'], + 'level': 'INFO', + 'propagate': True, + }, + 'django.request': { # Django的请求日志 + 'handlers': ['file'], + 'level': 'INFO', + 'propagate': True, + }, + 'celery': { # Celery客户端日志(Django中提交任务的日志) + 'handlers': ['file'], + 'level': 'INFO', + 'propagate': True, + }, + 'utils.tasks': { # Celery邮件任务模块 + 'handlers': ['file'], + 'level': 'INFO', + 'propagate': True, + }, + 'utils.email_utils': { # 邮件配置模块 + 'handlers': ['file'], + 'level': 'INFO', + 'propagate': True, + }, + }, +} \ No newline at end of file