From 48ea8f04a18573cc847e3697317d09c89c0c31aa Mon Sep 17 00:00:00 2001 From: Luca Steeb Date: Sat, 28 Mar 2026 23:20:56 +0700 Subject: [PATCH] fix: remove production debug logs --- apps/api/src/stripe.ts | 5 ++- apps/gateway/src/chat/chat.ts | 23 ------------ .../chat/tools/resolve-provider-context.ts | 11 ------ .../tools/transform-streaming-to-openai.ts | 23 ------------ apps/worker/src/worker.ts | 35 ------------------- packages/actions/src/validate-provider-key.ts | 14 -------- 6 files changed, 4 insertions(+), 107 deletions(-) diff --git a/apps/api/src/stripe.ts b/apps/api/src/stripe.ts index e834554303..33603060f1 100644 --- a/apps/api/src/stripe.ts +++ b/apps/api/src/stripe.ts @@ -190,7 +190,10 @@ stripeRoutes.openapi(webhookHandler, async (c) => { const event = getStripe().webhooks.constructEvent(body, sig, webhookSecret); - logger.info(JSON.stringify({ kind: "stripe-event", payload: event })); + logger.info("Stripe webhook received", { + eventId: event.id, + eventType: event.type, + }); switch (event.type) { case "payment_intent.succeeded": diff --git a/apps/gateway/src/chat/chat.ts b/apps/gateway/src/chat/chat.ts index 81b38970b9..a79423779b 100644 --- a/apps/gateway/src/chat/chat.ts +++ b/apps/gateway/src/chat/chat.ts @@ -785,16 +785,6 @@ chat.openapi(completions, async (c) => { allModelProviders = filterHybridRegions(allModelProviders); } - const regionCandidates = modelInfo.providers - .filter((p) => p.region) - .map((p) => `${p.providerId}:${p.region}`); - if (regionCandidates.length > 0) { - logger.info("[region-debug] Region candidates after filtering", { - projectMode: project.mode, - regionCandidates, - }); - } - // Fetch organization for coding model restriction check and credit validation const organization = await findOrganizationById(project.organizationId); @@ -2001,11 +1991,6 @@ chat.openapi(completions, async (c) => { usedToken = regionToken; } } - logger.info("[region-debug] Hybrid mode: DB key found", { - provider: usedProvider, - resolvedRegion: usedRegion ?? "none", - keyOptions: providerKey.options, - }); } else { // No API key available, fall back to credits // Check both regular credits AND dev plan credits @@ -2314,14 +2299,6 @@ chat.openapi(completions, async (c) => { customProviderName, ); } - - logger.info("[region-debug] Request resolved", { - provider: usedProvider, - model: usedModel, - region: usedRegion ?? "none", - endpoint: url, - tokenSource: providerKey ? "db-provider-key" : "env-var", - }); } catch (error) { if (usedProvider === "llmgateway" && usedModel !== "custom") { throw new HTTPException(400, { diff --git a/apps/gateway/src/chat/tools/resolve-provider-context.ts b/apps/gateway/src/chat/tools/resolve-provider-context.ts index e9d29f47fc..e8c19d2156 100644 --- a/apps/gateway/src/chat/tools/resolve-provider-context.ts +++ b/apps/gateway/src/chat/tools/resolve-provider-context.ts @@ -10,7 +10,6 @@ import { getProviderHeaders, prepareRequestBody, } from "@llmgateway/actions"; -import { logger } from "@llmgateway/logger"; import { type BaseMessage, getRegionSpecificEnvValue, @@ -277,16 +276,6 @@ export async function resolveProviderContext( usedRegion, ); - logger.info("[region-debug] Provider context resolved", { - provider: usedProvider, - model: usedModel, - region: usedRegion ?? "none", - endpoint: url ?? "unresolved", - tokenSource: providerKey ? "db-provider-key" : "env-var", - tokenEnvVar: envVarName, - projectMode: project.mode, - }); - if (!url) { throw new HTTPException(400, { message: `No base URL set for provider: ${usedProvider}`, diff --git a/apps/gateway/src/chat/tools/transform-streaming-to-openai.ts b/apps/gateway/src/chat/tools/transform-streaming-to-openai.ts index 3be1cc1bbd..28fb9edea4 100644 --- a/apps/gateway/src/chat/tools/transform-streaming-to-openai.ts +++ b/apps/gateway/src/chat/tools/transform-streaming-to-openai.ts @@ -688,17 +688,6 @@ export function transformStreamingToOpenai( case "azure": case "openai": { if (data.type) { - // Log full OpenAI event data for debugging - logger.info("[OpenAI Streaming Debug]", { - eventType: data.type, - hasAnnotations: !!(data.annotations ?? data.part?.annotations), - annotationsCount: (data.annotations ?? data.part?.annotations ?? []) - .length, - hasDelta: !!data.delta, - deltaKeys: data.delta ? Object.keys(data.delta) : [], - fullData: JSON.stringify(data), - }); - switch (data.type) { case "response.created": case "response.in_progress": @@ -1017,18 +1006,6 @@ export function transformStreamingToOpenai( break; } } else { - // Log standard OpenAI streaming format for debugging - logger.info("[OpenAI Standard Streaming Debug]", { - hasChoices: !!data.choices, - choicesLength: data.choices?.length ?? 0, - firstChoiceDeltaKeys: data.choices?.[0]?.delta - ? Object.keys(data.choices[0].delta) - : [], - hasAnnotations: !!data.choices?.[0]?.delta?.annotations, - annotationsCount: data.choices?.[0]?.delta?.annotations?.length ?? 0, - fullData: JSON.stringify(data), - }); - transformedData = transformOpenaiStreaming(data, usedModel); } break; diff --git a/apps/worker/src/worker.ts b/apps/worker/src/worker.ts index ec6aa3e266..6a02725d74 100644 --- a/apps/worker/src/worker.ts +++ b/apps/worker/src/worker.ts @@ -553,41 +553,6 @@ export async function batchProcessLogs(): Promise { for (const raw of unprocessedLogs.rows) { const row = schema.parse(raw); - // Log each processed log with JSON format - logger.info("Processing log", { - kind: "log-process", - status: row.hasError ? "error" : row.cached ? "cached" : "success", - logId: row.id, - requestId: row.request_id, - organizationId: row.organization_id, - projectId: row.project_id, - cost: row.cost, - inputCost: row.input_cost, - outputCost: row.output_cost, - cachedInputCost: row.cached_input_cost, - estimatedCost: row.estimated_cost, - error: !!row.hasError, - cached: row.cached, - apiKeyId: row.api_key_id, - projectMode: row.project_mode, - usedMode: row.used_mode, - duration: row.duration, - requestedModel: row.requested_model, - requestedProvider: row.requested_provider, - usedModel: row.used_model, - usedModelMapping: row.used_model_mapping, - usedProvider: row.used_provider, - responseSize: row.response_size, - promptTokens: row.prompt_tokens, - completionTokens: row.completion_tokens, - totalTokens: row.total_tokens, - reasoningTokens: row.reasoning_tokens, - cachedTokens: row.cached_tokens, - errorDetails: row.error_details, - traceId: row.trace_id, - unifiedFinishReason: row.unified_finish_reason, - }); - if (row.cost && row.cost > 0 && !row.cached) { // Always update API key usage for non-cached logs with cost const currentApiKeyCost = diff --git a/packages/actions/src/validate-provider-key.ts b/packages/actions/src/validate-provider-key.ts index cea06bca0b..d6cc9d575a 100644 --- a/packages/actions/src/validate-provider-key.ts +++ b/packages/actions/src/validate-provider-key.ts @@ -168,14 +168,6 @@ export async function validateProviderKey( ? providerKeyOptions.azure_validation_model : modelId; - logger.info("[region-debug] Validation endpoint configuration", { - provider, - model: validationModel, - modelId, - effectiveModelId, - providerKeyOptions, - }); - // Resolve region from provider key options for region-aware providers const providerDef = providers.find((p) => p.id === provider) as | ProviderDefinition @@ -205,12 +197,6 @@ export async function validateProviderKey( validationRegion, ); - logger.info("[region-debug] Validation request", { - endpoint, - validationRegion, - validationModel, - }); - // Check if max_tokens is supported const providerMapping = modelDef?.providers.find( (p) => p.providerId === provider && p.modelName === validationModel,