Commit fea40768 by baiquan

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

-将日志滚动周期从 7 天改为 1 天
- 优化抖店请求函数的错误处理和日志记录
- 改进异常信息的输出,增加错误详情记录
-调整 forbidden 错误的判断逻辑
parent f5374576
......@@ -14,7 +14,7 @@ import os
os.makedirs("logs", exist_ok=True)
# 添加日志文件输出,按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数据同步平台")
sync_router = APIRouter(prefix="/sync", tags=["同步接口"])
......
......@@ -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:
retry_count = 0
error_msg = ''
while True:
retry_count += 1
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:
if headers is None:
headers = HEADERS
......@@ -41,7 +42,7 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data:
else:
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已过期!")
if response.text:
response_data = response.json()
......@@ -58,7 +59,9 @@ def doudian_request(method: str, url: str, proxies:dict, params:dict=None, data:
}
raise Exception({response.text})
except CookiesExpiredError as e:
logger.error(f'请求失败-->{e.msg}')
error_msg = str(e.msg)
logger.error(f'请求失败-->{error_msg}')
except Exception as e:
logger.error(f'请求失败-->{e}')
error_msg = str(e)
logger.error(f'请求失败-->{error_msg}')
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