This commit is contained in:
薇薇安 2026-01-18 20:54:08 +08:00
parent 50026fb048
commit 8bfe9d95da
2 changed files with 35 additions and 22 deletions

View File

@ -185,6 +185,7 @@
font-size: 13px; font-size: 13px;
color: #111; color: #111;
word-break: break-word; word-break: break-word;
white-space: pre-wrap;
} }
.msg-count { .msg-count {

View File

@ -555,32 +555,44 @@ class BinanceClient:
except BinanceAPIException as e: except BinanceAPIException as e:
error_code = e.code if hasattr(e, 'code') else None error_code = e.code if hasattr(e, 'code') else None
error_msg = str(e) error_msg = str(e)
logger.error("=" * 60) # 合并成“单条多行日志”,避免日志/Redis 里刷屏
logger.error(f"获取账户余额失败: {error_msg}") lines = [
"=" * 60,
f"获取账户余额失败: {error_msg}",
]
if error_code == -2015: if error_code == -2015:
logger.error("=" * 60) lines += [
logger.error("API密钥权限错误 (错误代码: -2015)") "=" * 60,
logger.error("可能的原因:") "API密钥权限错误 (错误代码: -2015)",
logger.error("1. API密钥无效或已过期") "可能的原因:",
logger.error("2. API密钥没有合约交易权限") "1. API密钥无效或已过期",
logger.error("3. IP地址未添加到API密钥白名单") "2. API密钥没有合约交易权限",
logger.error("4. 测试网/生产网环境不匹配") "3. IP地址未添加到API密钥白名单",
logger.error("=" * 60) "4. 测试网/生产网环境不匹配",
logger.error("解决方案:") "=" * 60,
logger.error("1. 登录币安账户检查API密钥状态") "解决方案:",
logger.error("2. 确保API密钥已启用'合约交易'权限") "1. 登录币安账户检查API密钥状态",
logger.error("3. 如果设置了IP白名单请添加当前服务器IP") "2. 确保API密钥已启用'合约交易'权限",
logger.error("4. 检查 USE_TESTNET 配置是否正确") "3. 如果设置了IP白名单请添加当前服务器IP",
logger.error(f" 当前配置: USE_TESTNET = {self.testnet}") "4. 检查 USE_TESTNET 配置是否正确",
logger.error("=" * 60) f" 当前配置: USE_TESTNET = {self.testnet}",
"=" * 60,
]
elif error_code == -1022: elif error_code == -1022:
logger.error("签名错误请检查API密钥和密钥是否正确") lines += [
f"错误代码: {error_code}",
"签名错误,请检查 API_KEY / API_SECRET 是否匹配、是否有多余空格/换行",
]
elif error_code == -2010: elif error_code == -2010:
logger.error("账户余额不足") lines += [
f"错误代码: {error_code}",
"账户余额不足",
]
else: else:
logger.error(f"错误代码: {error_code}") lines += [f"错误代码: {error_code}"]
logger.error("\n".join(lines))
return {'available': 0.0, 'total': 0.0, 'margin': 0.0} return {'available': 0.0, 'total': 0.0, 'margin': 0.0}