From a56f02ef0102432c9f75637e37a7480878b2b694 Mon Sep 17 00:00:00 2001 From: september <18460348327@163.com> Date: Tue, 19 Aug 2025 10:51:33 +0800 Subject: [PATCH] =?UTF-8?q?settings=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chuangliangBaidu/migrations/BaidutaskQuery.py | 12 +++-- chuangliangBaidu/views.py | 30 ++++++++--- chuangliangProject/settings.py | 53 +++++++++++++++++++ 3 files changed, 82 insertions(+), 13 deletions(-) diff --git a/chuangliangBaidu/migrations/BaidutaskQuery.py b/chuangliangBaidu/migrations/BaidutaskQuery.py index 1003a69..f5a32b8 100644 --- a/chuangliangBaidu/migrations/BaidutaskQuery.py +++ b/chuangliangBaidu/migrations/BaidutaskQuery.py @@ -1,8 +1,12 @@ +# -*- coding: utf-8 -*- +""" +@Time : 2025/8/15 19:29 +@Auth : 九月的海 +@IDE : PyCharm +@Motto : Catch as catch can.... +""" from chuangliangTool.db_base import Bd_task_db, Async_create_ad_batch_db from typing import List, Dict, Any, Optional -import json -import html - from django.db import migrations, models @@ -93,8 +97,6 @@ class AsyncTaskDataQuery: "result_data": row[3] } task_logs.append(task_log) - - print(f"找到 {len(task_logs)} 条任务日志记录") return task_logs except Exception as e: diff --git a/chuangliangBaidu/views.py b/chuangliangBaidu/views.py index d14bd85..64ae628 100644 --- a/chuangliangBaidu/views.py +++ b/chuangliangBaidu/views.py @@ -1,13 +1,20 @@ -from django.http import JsonResponse -from django.views.decorators.http import require_GET -from django.utils import timezone # 使用 Django 的时区支持 -import json +# -*- coding: utf-8 -*- +""" +@Time : 2025/8/15 19:29 +@Auth : 九月的海 +@File : views.py +@IDE : PyCharm +@Motto : Catch as catch can.... +""" from chuangliangBaidu.migrations.BaidutaskQuery import AsyncTaskDataQuery from django.http import JsonResponse from django.views.decorators.http import require_GET from django.utils import timezone from django.shortcuts import render import json +import logging + +logger = logging.getLogger('chuangliang') def get_task_details(request): @@ -29,10 +36,12 @@ def get_task_details(request): "method": request.method } if is_browser_request: + logger.error(error_data) return render(request, 'json_formatter3.html', { "json_data": json.dumps(error_data, ensure_ascii=False), "status": 400 }) + logger.error(error_data) return JsonResponse(error_data, status=400, json_dumps_params={'ensure_ascii': False}) try: @@ -46,14 +55,17 @@ def get_task_details(request): "provided_value": task_id } if is_browser_request: + logger.error(error_data) return render(request, 'json_formatter3.html', { "json_data": json.dumps(error_data, ensure_ascii=False), "status": 400 }) + logger.error(error_data) return JsonResponse(error_data, status=400, json_dumps_params={'ensure_ascii': False}) # 创建查询实例并获取数据 try: + logger.info(f'查询的任务ID: {task_id}') task_query = AsyncTaskDataQuery(task_id) result = task_query.get_task_details() # 处理任务日志并解码中文 @@ -86,14 +98,15 @@ def get_task_details(request): # 如果是浏览器请求,返回HTML视图 if is_browser_request: + logger.info(response_data) return render(request, 'json_formatter3.html', { - "json_data": response_data, - # "json_data": json.dumps(response_data, ensure_ascii=False, indent=2), + # "json_data": response_data, + "json_data": json.dumps(response_data, ensure_ascii=False, indent=2), "status": 200, "task_id": task_id }) - # 返回JSON响应 + logger.info(response_data) return JsonResponse( response_data, json_dumps_params={'ensure_ascii': False} @@ -107,10 +120,11 @@ def get_task_details(request): "time": current_time, "task_id": task_id } - print(e) if is_browser_request: + logger.error(error_data) return render(request, 'json_formatter3.html', { "json_data": json.dumps(error_data, ensure_ascii=False), "status": 500 }) + logger.error(error_data) return JsonResponse(error_data, status=500, json_dumps_params={'ensure_ascii': False}) diff --git a/chuangliangProject/settings.py b/chuangliangProject/settings.py index cae89cc..441970b 100644 --- a/chuangliangProject/settings.py +++ b/chuangliangProject/settings.py @@ -122,3 +122,56 @@ STATIC_URL = 'static/' # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, # 保留Django默认日志器(如django.server) + 'formatters': { + # 定义日志格式(可根据需求调整) + 'verbose': { + 'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}', + 'style': '{', + }, + 'simple': { + 'format': '{levelname} {message}', + 'style': '{', + }, + 'custom': { + # 推荐:包含接口/业务关键信息(如请求路径、用户ID等) + 'format': '{asctime} - {levelname} - {module} - {message}', + 'style': '{', + }, + }, + 'handlers': { + # 控制台处理器(开发环境推荐) + 'console': { + 'level': 'DEBUG', # 控制台输出DEBUG及以上级别 + 'class': 'logging.StreamHandler', + 'formatter': 'custom', # 使用上面定义的custom格式 + }, + # 文件处理器(生产环境推荐,开发环境可选) + 'file': { + 'level': 'INFO', # 文件记录INFO及以上级别(避免DEBUG日志过多) + 'class': 'logging.handlers.RotatingFileHandler', + 'filename': BASE_DIR / 'logs' / 'chuangliang.log', # 日志文件路径 + 'maxBytes': 1024 * 1024 * 10, # 单个文件最大10MB + 'backupCount': 10, # 保留10个旧日志文件 + 'formatter': 'custom', # 使用custom格式 + 'encoding': 'utf-8', # 避免中文乱码 + }, + }, + 'loggers': { + # 配置Django内置日志器(如访问日志) + 'django.server': { + 'handlers': ['console'], # 开发环境输出到控制台 + 'level': 'INFO', # 记录INFO及以上级别(Django默认访问日志是INFO) + 'propagate': False, # 不传播到根日志器 + }, + # 配置您自定义的业务日志器(关键!) + 'chuangliang': { # (如Logger类中的self._logger = logging.getLogger("chuangliang")) + 'handlers': ['console', 'file'], # 同时输出到控制台和文件 + 'level': 'DEBUG', # 开发环境记录所有DEBUG及以上日志 + 'propagate': False, # 不传播到根日志器(避免与其他日志器冲突) + }, + }, +} \ No newline at end of file