Commit fea40768 by baiquan

refactor(log): 修改日志滚动周期并优化错误处理

-将日志滚动周期从 7 天改为 1 天
- 优化抖店请求函数的错误处理和日志记录
- 改进异常信息的输出,增加错误详情记录
-调整 forbidden 错误的判断逻辑
parent f5374576
...@@ -14,7 +14,7 @@ import os ...@@ -14,7 +14,7 @@ import os
os.makedirs("logs", exist_ok=True) os.makedirs("logs", exist_ok=True)
# 添加日志文件输出,按7天滚动 # 添加日志文件输出,按7天滚动
logger.add("logs/api.log", rotation="7 day", level="INFO", encoding="utf-8", backtrace=True, diagnose=True) logger.add("logs/api.log", rotation="1 day", level="INFO", encoding="utf-8", backtrace=True, diagnose=True)
app = FastAPI(title="doudian数据同步平台") app = FastAPI(title="doudian数据同步平台")
sync_router = APIRouter(prefix="/sync", tags=["同步接口"]) sync_router = APIRouter(prefix="/sync", tags=["同步接口"])
......
...@@ -25,10 +25,11 @@ HEADERS = { ...@@ -25,10 +25,11 @@ HEADERS = {
def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data: any = None, json: dict = None,headers=None, cookies=None, match_str="") -> any: def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data: any = None, json: dict = None,headers=None, cookies=None, match_str="") -> any:
retry_count = 0 retry_count = 0
error_msg = ''
while True: while True:
retry_count += 1 retry_count += 1
if retry_count > 3: if retry_count > 3:
raise Exception(f'超过重试次数,请求失败 method:{method}, url:{url}, proxies:{proxies}, params:{params}, data:{data}, json:{json}, headers:{headers}, cookies:{cookies}') raise Exception(f'超过重试次数,请求失败 --> {error_msg}')
try: try:
if headers is None: if headers is None:
headers = HEADERS headers = HEADERS
...@@ -41,7 +42,7 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data: ...@@ -41,7 +42,7 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data:
else: else:
raise ValueError(f"Unsupported HTTP method: {method}") raise ValueError(f"Unsupported HTTP method: {method}")
# 处理响应 # 处理响应
if (response.status_code == 403 and "Forbidden" in response.text) or "登录信息已失效" in response.text or "无权访问此接口" in response.text: if "登录信息已失效" in response.text or "无权访问此接口" in response.text:
raise CookiesExpiredError("cookies已过期!") raise CookiesExpiredError("cookies已过期!")
if response.text: if response.text:
response_data = response.json() response_data = response.json()
...@@ -58,7 +59,9 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data: ...@@ -58,7 +59,9 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data:
} }
raise Exception({response.text}) raise Exception({response.text})
except CookiesExpiredError as e: except CookiesExpiredError as e:
logger.error(f'请求失败-->{e.msg}') error_msg = str(e.msg)
logger.error(f'请求失败-->{error_msg}')
except Exception as e: except Exception as e:
logger.error(f'请求失败-->{e}') error_msg = str(e)
logger.error(f'请求失败-->{error_msg}')
time.sleep(3) time.sleep(3)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment