feat: improve logging

This commit is contained in:
eric
2026-02-23 13:32:13 +01:00
parent b9036ef962
commit 66b1ef15af
4 changed files with 134 additions and 13 deletions

View File

@@ -45,10 +45,11 @@ export class OpenRouterProvider implements AiProvider {
async ask(options: AskOptions): Promise<AiResponse> {
const { prompt, systemPrompt, maxTokens, temperature } = options;
const model = config.ai.model;
try {
const completion = await this.client.chat.completions.create({
model: config.ai.model,
model,
messages: [
{ role: "system", content: systemPrompt },
{ role: "user", content: prompt },
@@ -62,7 +63,13 @@ export class OpenRouterProvider implements AiProvider {
// Discord message limit safety
return { text: text.slice(0, 1900) };
} catch (error: unknown) {
logger.error("Failed to generate response", error);
logger.error("Failed to generate response (ask)", {
method: "ask",
model,
promptLength: prompt.length,
...(error instanceof Error ? {} : { rawError: error }),
});
logger.error("API error details", error);
throw error;
}
}
@@ -146,7 +153,15 @@ export class OpenRouterProvider implements AiProvider {
return { text: text.slice(0, 1900) };
} catch (error: unknown) {
logger.error("Failed to generate response with tools", error);
logger.error("Failed to generate response with tools (askWithTools)", {
method: "askWithTools",
model: config.ai.model,
iteration: iterations,
messageCount: messages.length,
toolCount: tools.length,
...(error instanceof Error ? {} : { rawError: error }),
});
logger.error("API error details", error);
throw error;
}
}
@@ -208,7 +223,13 @@ The user's Discord ID is: ${context.userId}`;
}
} catch (error) {
// Don't throw - memory extraction is non-critical
logger.error("Memory extraction failed", error);
logger.error("Memory extraction failed", {
method: "extractMemories",
model: config.ai.model,
authorName,
messageLength: message.length,
});
logger.error("Memory extraction error details", error);
}
}
@@ -251,7 +272,12 @@ Category:`,
logger.debug("Classification returned invalid style, defaulting to snarky", { result });
return "snarky";
} catch (error) {
logger.error("Failed to classify message", error);
logger.error("Failed to classify message", {
method: "classifyMessage",
model: config.ai.classificationModel,
messageLength: message.length,
});
logger.error("Classification error details", error);
return "snarky"; // Default to snarky on error
}
}