diff --git a/src/discord/monitor/listeners.ts b/src/discord/monitor/listeners.ts index 103b91c3e..a5f63bec5 100644 --- a/src/discord/monitor/listeners.ts +++ b/src/discord/monitor/listeners.ts @@ -8,6 +8,7 @@ import { import { danger } from "../../globals.js"; import { formatDurationSeconds } from "../../infra/format-duration.js"; import { enqueueSystemEvent } from "../../infra/system-events.js"; +import { createSubsystemLogger } from "../../logging.js"; import { resolveAgentRoute } from "../../routing/resolve-route.js"; import { normalizeDiscordSlug, @@ -19,7 +20,7 @@ import { formatDiscordReactionEmoji, formatDiscordUserTag } from "./format.js"; type LoadedConfig = ReturnType; type RuntimeEnv = import("../../runtime.js").RuntimeEnv; -type Logger = ReturnType; +type Logger = ReturnType; export type DiscordMessageEvent = Parameters[0]; @@ -28,6 +29,7 @@ export type DiscordMessageHandler = (data: DiscordMessageEvent, client: Client) type DiscordReactionEvent = Parameters[0]; const DISCORD_SLOW_LISTENER_THRESHOLD_MS = 1000; +const discordEventQueueLog = createSubsystemLogger("discord/event-queue"); function logSlowDiscordListener(params: { logger: Logger | undefined; @@ -40,12 +42,15 @@ function logSlowDiscordListener(params: { decimals: 1, unit: "seconds", }); - const message = `[EventQueue] Slow listener detected: ${params.listener} took ${duration} for event ${params.event}`; - if (params.logger?.warn) { - params.logger.warn(message); - } else { - console.warn(message); - } + const message = `Slow listener detected: ${params.listener} took ${duration} for event ${params.event}`; + const logger = params.logger ?? discordEventQueueLog; + logger.warn("Slow listener detected", { + listener: params.listener, + event: params.event, + durationMs: params.durationMs, + duration, + consoleMessage: message, + }); } export function registerDiscordListener(listeners: Array, listener: object) { diff --git a/src/discord/monitor/provider.ts b/src/discord/monitor/provider.ts index b6ec2b2be..7d25e0435 100644 --- a/src/discord/monitor/provider.ts +++ b/src/discord/monitor/provider.ts @@ -13,7 +13,7 @@ import { import type { ClawdbotConfig, ReplyToMode } from "../../config/config.js"; import { loadConfig } from "../../config/config.js"; import { danger, logVerbose, shouldLogVerbose } from "../../globals.js"; -import { getChildLogger } from "../../logging.js"; +import { createSubsystemLogger } from "../../logging.js"; import type { RuntimeEnv } from "../../runtime.js"; import { resolveDiscordAccount } from "../accounts.js"; import { attachDiscordGatewayLogging } from "../gateway-logging.js"; @@ -178,7 +178,7 @@ export async function monitorDiscordProvider(opts: MonitorDiscordOpts = {}) { ], ); - const logger = getChildLogger({ module: "discord-auto-reply" }); + const logger = createSubsystemLogger("discord/monitor"); const guildHistories = new Map(); let botUserId: string | undefined; diff --git a/src/gateway/ws-log.ts b/src/gateway/ws-log.ts index 934578c5b..b95632614 100644 --- a/src/gateway/ws-log.ts +++ b/src/gateway/ws-log.ts @@ -1,7 +1,7 @@ import chalk from "chalk"; import { isVerbose } from "../globals.js"; +import { createSubsystemLogger, shouldLogSubsystemToConsole } from "../logging.js"; import { getDefaultRedactPatterns, redactSensitiveText } from "../logging/redact.js"; -import { shouldLogSubsystemToConsole } from "../logging.js"; import { DEFAULT_WS_SLOW_MS, getGatewayWsLogStyle } from "./ws-logging.js"; const LOG_VALUE_LIMIT = 240; @@ -21,6 +21,7 @@ const wsInflightCompact = new Map(); let wsLastCompactConnId: string | undefined; const wsInflightOptimized = new Map(); const wsInflightSince = new Map(); +const wsLog = createSubsystemLogger("gateway/ws"); export function shortId(value: string): string { const s = value.trim(); @@ -167,7 +168,7 @@ export function logWs(direction: "in" | "out", kind: string, meta?: Record Boolean(t), ); - console.log(tokens.join(" ")); + wsLog.info(tokens.join(" ")); } function logWsOptimized(direction: "in" | "out", kind: string, meta?: Record) { @@ -225,9 +226,9 @@ function logWsOptimized(direction: "in" | "out", kind: string, meta?: Record Boolean(t)); - console.log(tokens.join(" ")); + wsLog.info(tokens.join(" ")); } function logWsCompact(direction: "in" | "out", kind: string, meta?: Record) { @@ -298,7 +299,7 @@ function logWsCompact(direction: "in" | "out", kind: string, meta?: Record Boolean(t), ); - console.log(tokens.join(" ")); + wsLog.info(tokens.join(" ")); }