Quellcode durchsuchen

修改logger的显示格式

Sherlock vor 2 Wochen
Ursprung
Commit
6494390910
3 geänderte Dateien mit 32 neuen und 20 gelöschten Zeilen
  1. 5 5
      .env.example
  2. 4 0
      core/config.py
  3. 23 15
      core/logging.py

+ 5 - 5
.env.example

@@ -2,16 +2,16 @@
 # 复制此文件为 .env 并填入实际值
 # 复制此文件为 .env 并填入实际值
 
 
 # MySQL
 # MySQL
-MYSQL_HOST=rm-t4n6rz18y4t5x47y70o.mysql.singapore.rds.aliyuncs.com
-MYSQL_PORT=3036
-MYSQL_USER=BrandCultivation
-MYSQL_PASSWORD=your_mysql_password_here
+MYSQL_HOST=39.170.28.107
+MYSQL_PORT=6612
+MYSQL_USER=app_user
+MYSQL_PASSWORD=StrongPassword123!
 MYSQL_DB=brand_cultivation
 MYSQL_DB=brand_cultivation
 
 
 # Redis
 # Redis
 REDIS_HOST=r-t4nb4n9i8je7u6ogk1pd.redis.singapore.rds.aliyuncs.com
 REDIS_HOST=r-t4nb4n9i8je7u6ogk1pd.redis.singapore.rds.aliyuncs.com
 REDIS_PORT=5000
 REDIS_PORT=5000
-REDIS_PASSWORD=your_redis_password_here
+REDIS_PASSWORD=gHmNkVBd88sZybj
 REDIS_DB=10
 REDIS_DB=10
 
 
 # Logging
 # Logging

+ 4 - 0
core/config.py

@@ -1,9 +1,13 @@
 import os
 import os
 from pathlib import Path
 from pathlib import Path
 import yaml
 import yaml
+from dotenv import load_dotenv
 
 
 PROJECT_ROOT = Path(__file__).resolve().parent.parent
 PROJECT_ROOT = Path(__file__).resolve().parent.parent
 
 
+# 加载 .env 文件
+load_dotenv(PROJECT_ROOT / ".env")
+
 
 
 def _get_env(key: str, default=None):
 def _get_env(key: str, default=None):
     return os.environ.get(key, default)
     return os.environ.get(key, default)

+ 23 - 15
core/logging.py

@@ -7,22 +7,30 @@ from datetime import datetime, timezone
 request_id_var: ContextVar[str] = ContextVar("request_id", default="-")
 request_id_var: ContextVar[str] = ContextVar("request_id", default="-")
 
 
 
 
-class JSONFormatter(logging.Formatter):
+class ReadableFormatter(logging.Formatter):
     def format(self, record: logging.LogRecord) -> str:
     def format(self, record: logging.LogRecord) -> str:
-        log_data = {
-            "timestamp": datetime.now(timezone.utc).isoformat(),
-            "level": record.levelname,
-            "module": record.module,
-            "function": record.funcName,
-            "line": record.lineno,
-            "message": record.getMessage(),
-            "request_id": request_id_var.get("-"),
-        }
+        # 将时间格式化为本地时间
+        local_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+        request_id = request_id_var.get("-")
+        message = record.getMessage()
+
+        # 构建基础日志信息
+        if record.levelname == "INFO":
+            # INFO级别: [INFO] timestamp message (request_id)
+            log_msg = f"[{record.levelname}] {local_time} {message}"
+            if request_id != "-":
+                log_msg += f" ({request_id})"
+        else:
+            # 非INFO级别: [LEVEL] timestamp message module function line (request_id)
+            log_msg = f"[{record.levelname}] {local_time} {message} {record.module} {record.funcName} {record.lineno}"
+            if request_id != "-":
+                log_msg += f" ({request_id})"
+
+        # 如果有异常信息,追加到日志后面
         if record.exc_info and record.exc_info[0] is not None:
         if record.exc_info and record.exc_info[0] is not None:
-            log_data["exception"] = self.formatException(record.exc_info)
-        if hasattr(record, "extra_data"):
-            log_data["extra"] = record.extra_data
-        return json.dumps(log_data, ensure_ascii=False)
+            log_msg += "\n" + self.formatException(record.exc_info)
+
+        return log_msg
 
 
 
 
 def get_logger(name: str) -> logging.Logger:
 def get_logger(name: str) -> logging.Logger:
@@ -31,7 +39,7 @@ def get_logger(name: str) -> logging.Logger:
     logger = logging.getLogger(name)
     logger = logging.getLogger(name)
     if not logger.handlers:
     if not logger.handlers:
         handler = logging.StreamHandler(sys.stdout)
         handler = logging.StreamHandler(sys.stdout)
-        handler.setFormatter(JSONFormatter())
+        handler.setFormatter(ReadableFormatter())
         logger.addHandler(handler)
         logger.addHandler(handler)
         logger.setLevel(getattr(logging, settings.log_level, logging.INFO))
         logger.setLevel(getattr(logging, settings.log_level, logging.INFO))
         logger.propagate = False
         logger.propagate = False