mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-22 16:43:35 +00:00
fix: 去除logger自动添加metadata字段
This commit is contained in:
@@ -573,7 +573,16 @@ async function handleGenerateContent(req, res) {
|
|||||||
res.json(response)
|
res.json(response)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const version = req.path.includes('v1beta') ? 'v1beta' : 'v1internal'
|
const version = req.path.includes('v1beta') ? 'v1beta' : 'v1internal'
|
||||||
logger.error(`Error in generateContent endpoint (${version})`, { error: error.message })
|
// 打印详细的错误信息
|
||||||
|
logger.error(`Error in generateContent endpoint (${version})`, {
|
||||||
|
message: error.message,
|
||||||
|
status: error.response?.status,
|
||||||
|
statusText: error.response?.statusText,
|
||||||
|
responseData: error.response?.data,
|
||||||
|
requestUrl: error.config?.url,
|
||||||
|
requestMethod: error.config?.method,
|
||||||
|
stack: error.stack
|
||||||
|
})
|
||||||
res.status(500).json({
|
res.status(500).json({
|
||||||
error: {
|
error: {
|
||||||
message: error.message || 'Internal server error',
|
message: error.message || 'Internal server error',
|
||||||
@@ -756,7 +765,16 @@ async function handleStreamGenerateContent(req, res) {
|
|||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const version = req.path.includes('v1beta') ? 'v1beta' : 'v1internal'
|
const version = req.path.includes('v1beta') ? 'v1beta' : 'v1internal'
|
||||||
logger.error(`Error in streamGenerateContent endpoint (${version})`, { error: error.message })
|
// 打印详细的错误信息
|
||||||
|
logger.error(`Error in streamGenerateContent endpoint (${version})`, {
|
||||||
|
message: error.message,
|
||||||
|
status: error.response?.status,
|
||||||
|
statusText: error.response?.statusText,
|
||||||
|
responseData: error.response?.data,
|
||||||
|
requestUrl: error.config?.url,
|
||||||
|
requestMethod: error.config?.method,
|
||||||
|
stack: error.stack
|
||||||
|
})
|
||||||
|
|
||||||
if (!res.headersSent) {
|
if (!res.headersSent) {
|
||||||
res.status(500).json({
|
res.status(500).json({
|
||||||
|
|||||||
@@ -82,7 +82,8 @@ async function getOpenAIAuthToken(apiKeyData, sessionId = null, requestedModel =
|
|||||||
accessToken,
|
accessToken,
|
||||||
accountId: result.accountId,
|
accountId: result.accountId,
|
||||||
accountName: account.name,
|
accountName: account.name,
|
||||||
proxy
|
proxy,
|
||||||
|
account
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('Failed to get OpenAI auth token:', error)
|
logger.error('Failed to get OpenAI auth token:', error)
|
||||||
@@ -148,7 +149,7 @@ router.post('/responses', authenticateApiKey, async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 使用调度器选择账户
|
// 使用调度器选择账户
|
||||||
const { accessToken, accountId, proxy } = await getOpenAIAuthToken(
|
const { accessToken, accountId, accountName, proxy, account } = await getOpenAIAuthToken(
|
||||||
apiKeyData,
|
apiKeyData,
|
||||||
sessionId,
|
sessionId,
|
||||||
requestedModel
|
requestedModel
|
||||||
@@ -167,7 +168,7 @@ router.post('/responses', authenticateApiKey, async (req, res) => {
|
|||||||
|
|
||||||
// 覆盖或新增必要头部
|
// 覆盖或新增必要头部
|
||||||
headers['authorization'] = `Bearer ${accessToken}`
|
headers['authorization'] = `Bearer ${accessToken}`
|
||||||
headers['chatgpt-account-id'] = accountId
|
headers['chatgpt-account-id'] = account.chatgptUserId || account.accountId || accountId
|
||||||
headers['host'] = 'chatgpt.com'
|
headers['host'] = 'chatgpt.com'
|
||||||
headers['accept'] = isStream ? 'text/event-stream' : 'application/json'
|
headers['accept'] = isStream ? 'text/event-stream' : 'application/json'
|
||||||
headers['content-type'] = 'application/json'
|
headers['content-type'] = 'application/json'
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ const safeStringify = (obj, maxDepth = 3, fullDepth = false) => {
|
|||||||
const createLogFormat = (colorize = false) => {
|
const createLogFormat = (colorize = false) => {
|
||||||
const formats = [
|
const formats = [
|
||||||
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
||||||
winston.format.errors({ stack: true }),
|
winston.format.errors({ stack: true })
|
||||||
winston.format.metadata({ fillExcept: ['message', 'level', 'timestamp', 'stack'] })
|
// 移除 winston.format.metadata() 来避免自动包装
|
||||||
]
|
]
|
||||||
|
|
||||||
if (colorize) {
|
if (colorize) {
|
||||||
@@ -69,7 +69,7 @@ const createLogFormat = (colorize = false) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
formats.push(
|
formats.push(
|
||||||
winston.format.printf(({ level, message, timestamp, stack, metadata, ...rest }) => {
|
winston.format.printf(({ level, message, timestamp, stack, ...rest }) => {
|
||||||
const emoji = {
|
const emoji = {
|
||||||
error: '❌',
|
error: '❌',
|
||||||
warn: '⚠️ ',
|
warn: '⚠️ ',
|
||||||
@@ -80,12 +80,7 @@ const createLogFormat = (colorize = false) => {
|
|||||||
|
|
||||||
let logMessage = `${emoji[level] || '📝'} [${timestamp}] ${level.toUpperCase()}: ${message}`
|
let logMessage = `${emoji[level] || '📝'} [${timestamp}] ${level.toUpperCase()}: ${message}`
|
||||||
|
|
||||||
// 添加元数据
|
// 直接处理额外数据,不需要metadata包装
|
||||||
if (metadata && Object.keys(metadata).length > 0) {
|
|
||||||
logMessage += ` | ${safeStringify(metadata)}`
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加其他属性
|
|
||||||
const additionalData = { ...rest }
|
const additionalData = { ...rest }
|
||||||
delete additionalData.level
|
delete additionalData.level
|
||||||
delete additionalData.message
|
delete additionalData.message
|
||||||
|
|||||||
@@ -2081,8 +2081,8 @@ const updateAccount = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.account.platform === 'gemini' && form.value.projectId) {
|
if (props.account.platform === 'gemini') {
|
||||||
data.projectId = form.value.projectId
|
data.projectId = form.value.projectId || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
// Claude 官方账号优先级和订阅类型更新
|
// Claude 官方账号优先级和订阅类型更新
|
||||||
|
|||||||
Reference in New Issue
Block a user