prefect日志标准化

This commit is contained in:
2026-03-26 11:09:37 +08:00
parent bef5c46f85
commit 543491f03c
2 changed files with 25 additions and 1 deletions
+11 -1
View File
@@ -4,7 +4,7 @@ import os
import time import time
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Dict, Iterable, List, Optional, Tuple from typing import Callable, Dict, Iterable, List, Optional, Tuple
from urllib import error, parse, request from urllib import error, parse, request
try: try:
@@ -98,12 +98,22 @@ FIELD_TYPE_HINTS = {
"商品数量": FIELD_TYPE_NUMBER, "商品数量": FIELD_TYPE_NUMBER,
} }
LOGGER_WRITER: Optional[Callable[[str, str], None]] = None
def log(message: str, *, level: str = "INFO") -> None: def log(message: str, *, level: str = "INFO") -> None:
if LOGGER_WRITER is not None:
LOGGER_WRITER(level, message)
return
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{timestamp}] [{level}] {message}") print(f"[{timestamp}] [{level}] {message}")
def set_logger_writer(writer: Optional[Callable[[str, str], None]]) -> None:
global LOGGER_WRITER
LOGGER_WRITER = writer
def load_env(path: Path) -> None: def load_env(path: Path) -> None:
if not path.exists(): if not path.exists():
return return
+14
View File
@@ -9,6 +9,17 @@ from prefect import flow, get_run_logger, task
import import_logistics_to_feishu_bitable import import_logistics_to_feishu_bitable
def prefect_log_writer(level: str, message: str) -> None:
logger = get_run_logger()
level_name = level.upper()
if level_name == "ERROR":
logger.error(message)
elif level_name == "WARN":
logger.warning(message)
else:
logger.info(message)
def send_feishu_group_message(text: str) -> None: def send_feishu_group_message(text: str) -> None:
import_logistics_to_feishu_bitable.load_env(import_logistics_to_feishu_bitable.ENV_PATH) import_logistics_to_feishu_bitable.load_env(import_logistics_to_feishu_bitable.ENV_PATH)
@@ -41,6 +52,7 @@ def run_logistics_sync_task() -> dict:
logger = get_run_logger() logger = get_run_logger()
logger.info("开始执行物流数据同步任务") logger.info("开始执行物流数据同步任务")
started_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S") started_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
import_logistics_to_feishu_bitable.set_logger_writer(prefect_log_writer)
try: try:
summary = import_logistics_to_feishu_bitable.execute_sync() summary = import_logistics_to_feishu_bitable.execute_sync()
@@ -54,6 +66,8 @@ def run_logistics_sync_task() -> dict:
) )
send_feishu_group_message(failure_text) send_feishu_group_message(failure_text)
raise raise
finally:
import_logistics_to_feishu_bitable.set_logger_writer(None)
finished_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S") finished_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
logger.info("物流数据同步任务完成") logger.info("物流数据同步任务完成")