mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 09:38:02 +00:00
feat: 在错误日志中添加账号信息
- 在 claudeRelayService.js 的所有错误日志中添加账号名称或 ID - 在 claudeConsoleRelayService.js 的错误日志中添加账号信息 - 便于排查 529 (过载) 和 504 (超时) 错误对应的具体账号 问题背景: 用户反馈错误日志中没有账号信息,无法定位是哪个账号出现问题, 特别是 529 和 504 错误频繁出现时难以排查。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -222,7 +222,7 @@ class ClaudeConsoleRelayService {
|
|||||||
throw new Error('Client disconnected')
|
throw new Error('Client disconnected')
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.error('❌ Claude Console Claude relay request failed:', error.message)
|
logger.error(`❌ Claude Console relay request failed (Account: ${account?.name || accountId}):`, error.message)
|
||||||
|
|
||||||
// 不再因为模型不支持而block账号
|
// 不再因为模型不支持而block账号
|
||||||
|
|
||||||
@@ -297,7 +297,7 @@ class ClaudeConsoleRelayService {
|
|||||||
// 更新最后使用时间
|
// 更新最后使用时间
|
||||||
await this._updateLastUsedTime(accountId)
|
await this._updateLastUsedTime(accountId)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('❌ Claude Console Claude stream relay failed:', error)
|
logger.error(`❌ Claude Console stream relay failed (Account: ${account?.name || accountId}):`, error)
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -376,7 +376,7 @@ class ClaudeConsoleRelayService {
|
|||||||
|
|
||||||
// 错误响应处理
|
// 错误响应处理
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
logger.error(`❌ Claude Console API returned error status: ${response.status}`)
|
logger.error(`❌ Claude Console API returned error status: ${response.status} | Account: ${account?.name || accountId}`)
|
||||||
|
|
||||||
if (response.status === 401) {
|
if (response.status === 401) {
|
||||||
claudeConsoleAccountService.markAccountUnauthorized(accountId)
|
claudeConsoleAccountService.markAccountUnauthorized(accountId)
|
||||||
@@ -528,7 +528,7 @@ class ClaudeConsoleRelayService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('❌ Error processing Claude Console stream data:', error)
|
logger.error(`❌ Error processing Claude Console stream data (Account: ${account?.name || accountId}):`, error)
|
||||||
if (!responseStream.destroyed) {
|
if (!responseStream.destroyed) {
|
||||||
responseStream.write('event: error\n')
|
responseStream.write('event: error\n')
|
||||||
responseStream.write(
|
responseStream.write(
|
||||||
@@ -570,7 +570,7 @@ class ClaudeConsoleRelayService {
|
|||||||
})
|
})
|
||||||
|
|
||||||
response.data.on('error', (error) => {
|
response.data.on('error', (error) => {
|
||||||
logger.error('❌ Claude Console stream error:', error)
|
logger.error(`❌ Claude Console stream error (Account: ${account?.name || accountId}):`, error)
|
||||||
if (!responseStream.destroyed) {
|
if (!responseStream.destroyed) {
|
||||||
responseStream.write('event: error\n')
|
responseStream.write('event: error\n')
|
||||||
responseStream.write(
|
responseStream.write(
|
||||||
@@ -590,7 +590,7 @@ class ClaudeConsoleRelayService {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.error('❌ Claude Console Claude stream request error:', error.message)
|
logger.error(`❌ Claude Console stream request error (Account: ${account?.name || accountId}):`, error.message)
|
||||||
|
|
||||||
// 检查错误状态
|
// 检查错误状态
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
|
|||||||
@@ -741,7 +741,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
resolve(response)
|
resolve(response)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('❌ Failed to parse Claude API response:', error)
|
logger.error(`❌ Failed to parse Claude API response (Account: ${accountId}):`, error)
|
||||||
reject(error)
|
reject(error)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -754,7 +754,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
req.on('error', async (error) => {
|
req.on('error', async (error) => {
|
||||||
console.error(': ❌ ', error)
|
console.error(': ❌ ', error)
|
||||||
logger.error('❌ Claude API request error:', error.message, {
|
logger.error(`❌ Claude API request error (Account: ${accountId}):`, error.message, {
|
||||||
code: error.code,
|
code: error.code,
|
||||||
errno: error.errno,
|
errno: error.errno,
|
||||||
syscall: error.syscall,
|
syscall: error.syscall,
|
||||||
@@ -781,7 +781,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
req.on('timeout', async () => {
|
req.on('timeout', async () => {
|
||||||
req.destroy()
|
req.destroy()
|
||||||
logger.error('❌ Claude API request timeout')
|
logger.error(`❌ Claude API request timeout (Account: ${accountId})`)
|
||||||
|
|
||||||
await this._handleServerError(accountId, 504, null, 'Request')
|
await this._handleServerError(accountId, 504, null, 'Request')
|
||||||
|
|
||||||
@@ -889,7 +889,7 @@ class ClaudeRelayService {
|
|||||||
options
|
options
|
||||||
)
|
)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('❌ Claude stream relay with usage capture failed:', error)
|
logger.error(`❌ Claude stream relay with usage capture failed:`, error)
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1015,7 +1015,7 @@ class ClaudeRelayService {
|
|||||||
logger.error('❌ Error in stream error handler:', err)
|
logger.error('❌ Error in stream error handler:', err)
|
||||||
})
|
})
|
||||||
|
|
||||||
logger.error(`❌ Claude API returned error status: ${res.statusCode}`)
|
logger.error(`❌ Claude API returned error status: ${res.statusCode} | Account: ${account?.name || accountId}`)
|
||||||
let errorData = ''
|
let errorData = ''
|
||||||
|
|
||||||
res.on('data', (chunk) => {
|
res.on('data', (chunk) => {
|
||||||
@@ -1024,7 +1024,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
res.on('end', () => {
|
res.on('end', () => {
|
||||||
console.error(': ❌ ', errorData)
|
console.error(': ❌ ', errorData)
|
||||||
logger.error('❌ Claude API error response:', errorData)
|
logger.error(`❌ Claude API error response (Account: ${account?.name || accountId}):`, errorData)
|
||||||
if (!responseStream.destroyed) {
|
if (!responseStream.destroyed) {
|
||||||
// 发送错误事件
|
// 发送错误事件
|
||||||
responseStream.write('event: error\n')
|
responseStream.write('event: error\n')
|
||||||
@@ -1343,7 +1343,7 @@ class ClaudeRelayService {
|
|||||||
})
|
})
|
||||||
|
|
||||||
req.on('error', async (error) => {
|
req.on('error', async (error) => {
|
||||||
logger.error('❌ Claude stream request error:', error.message, {
|
logger.error(`❌ Claude stream request error (Account: ${account?.name || accountId}):`, error.message, {
|
||||||
code: error.code,
|
code: error.code,
|
||||||
errno: error.errno,
|
errno: error.errno,
|
||||||
syscall: error.syscall
|
syscall: error.syscall
|
||||||
@@ -1391,7 +1391,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
req.on('timeout', async () => {
|
req.on('timeout', async () => {
|
||||||
req.destroy()
|
req.destroy()
|
||||||
logger.error('❌ Claude stream request timeout')
|
logger.error(`❌ Claude stream request timeout | Account: ${account?.name || accountId}`)
|
||||||
|
|
||||||
if (!responseStream.headersSent) {
|
if (!responseStream.headersSent) {
|
||||||
responseStream.writeHead(504, {
|
responseStream.writeHead(504, {
|
||||||
@@ -1493,7 +1493,7 @@ class ClaudeRelayService {
|
|||||||
})
|
})
|
||||||
|
|
||||||
req.on('error', async (error) => {
|
req.on('error', async (error) => {
|
||||||
logger.error('❌ Claude stream request error:', error.message, {
|
logger.error(`❌ Claude stream request error (Account: ${account?.name || accountId}):`, error.message, {
|
||||||
code: error.code,
|
code: error.code,
|
||||||
errno: error.errno,
|
errno: error.errno,
|
||||||
syscall: error.syscall
|
syscall: error.syscall
|
||||||
@@ -1541,7 +1541,7 @@ class ClaudeRelayService {
|
|||||||
|
|
||||||
req.on('timeout', async () => {
|
req.on('timeout', async () => {
|
||||||
req.destroy()
|
req.destroy()
|
||||||
logger.error('❌ Claude stream request timeout')
|
logger.error(`❌ Claude stream request timeout | Account: ${account?.name || accountId}`)
|
||||||
|
|
||||||
if (!responseStream.headersSent) {
|
if (!responseStream.headersSent) {
|
||||||
responseStream.writeHead(504, {
|
responseStream.writeHead(504, {
|
||||||
|
|||||||
Reference in New Issue
Block a user