




























@@ -29,6 +29,14 @@ export type SubsystemLogger = {
2929child: (name: string) => SubsystemLogger;
3030};
313132+function normalizeSubsystemLabel(subsystem?: string | null): string {
33+if (typeof subsystem !== "string") {
34+return "unknown";
35+}
36+const normalized = subsystem.trim();
37+return normalized.length > 0 ? normalized : "unknown";
38+}
39+3240function shouldLogToConsole(level: LogLevel, settings: { level: LogLevel }): boolean {
3341if (level === "silent") {
3442return false;
@@ -259,8 +267,8 @@ function writeConsoleLine(level: LogLevel, line: string) {
259267260268function shouldSuppressProbeConsoleLine(params: {
261269level: LogLevel;
262-subsystem: string;
263-message: string;
270+subsystem?: string | null;
271+message?: string | null;
264272meta?: Record<string, unknown>;
265273}): boolean {
266274if (isVerbose()) {
@@ -269,11 +277,13 @@ function shouldSuppressProbeConsoleLine(params: {
269277if (params.level === "error" || params.level === "fatal") {
270278return false;
271279}
280+const subsystem = normalizeSubsystemLabel(params.subsystem);
281+const message = typeof params.message === "string" ? params.message : "";
272282const isProbeSuppressedSubsystem =
273-params.subsystem === "agent/embedded" ||
274-params.subsystem.startsWith("agent/embedded/") ||
275-params.subsystem === "model-fallback" ||
276-params.subsystem.startsWith("model-fallback/");
283+subsystem === "agent/embedded" ||
284+subsystem.startsWith("agent/embedded/") ||
285+subsystem === "model-fallback" ||
286+subsystem.startsWith("model-fallback/");
277287if (!isProbeSuppressedSubsystem) {
278288return false;
279289}
@@ -286,7 +296,7 @@ function shouldSuppressProbeConsoleLine(params: {
286296if (runLikeId?.startsWith("probe-")) {
287297return true;
288298}
289-return /(sessionId|runId)=probe-/.test(params.message);
299+return /(sessionId|runId)=probe-/.test(message);
290300}
291301292302function logToFile(
@@ -313,13 +323,14 @@ function logToFile(
313323}
314324315325export function createSubsystemLogger(subsystem: string): SubsystemLogger {
326+const resolvedSubsystem = normalizeSubsystemLabel(subsystem);
316327let fileLogger: TsLogger<LogObj> | null = null;
317328318329const emitLog = (level: LogLevel, message: string, meta?: Record<string, unknown>) => {
319330const consoleSettings = getConsoleSettings();
320331const consoleEnabled =
321332shouldLogToConsole(level, { level: consoleSettings.level }) &&
322-shouldLogSubsystemToConsole(subsystem);
333+shouldLogSubsystemToConsole(resolvedSubsystem);
323334const fileEnabled = isFileLogLevelEnabled(level);
324335if (!consoleEnabled && !fileEnabled) {
325336return;
@@ -337,7 +348,7 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
337348}
338349if (fileEnabled) {
339350if (!fileLogger) {
340-fileLogger = getChildLogger({ subsystem });
351+fileLogger = getChildLogger({ subsystem: resolvedSubsystem });
341352}
342353logToFile(fileLogger, level, message, fileMeta);
343354}
@@ -348,7 +359,7 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
348359if (
349360shouldSuppressProbeConsoleLine({
350361 level,
351- subsystem,
362+subsystem: resolvedSubsystem,
352363message: consoleMessage,
353364meta: fileMeta,
354365})
@@ -359,7 +370,7 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
359370level,
360371formatConsoleLine({
361372 level,
362- subsystem,
373+subsystem: resolvedSubsystem,
363374message: consoleSettings.style === "json" ? message : consoleMessage,
364375style: consoleSettings.style,
365376meta: fileMeta,
@@ -368,11 +379,11 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
368379};
369380370381const logger: SubsystemLogger = {
371- subsystem,
382+subsystem: resolvedSubsystem,
372383isEnabled(level, target = "any") {
373384const isConsoleEnabled =
374385shouldLogToConsole(level, { level: getConsoleSettings().level }) &&
375-shouldLogSubsystemToConsole(subsystem);
386+shouldLogSubsystemToConsole(resolvedSubsystem);
376387const isFileEnabled = isFileLogLevelEnabled(level);
377388if (target === "console") {
378389return isConsoleEnabled;
@@ -403,22 +414,28 @@ export function createSubsystemLogger(subsystem: string): SubsystemLogger {
403414raw(message) {
404415if (isFileLogLevelEnabled("info")) {
405416if (!fileLogger) {
406-fileLogger = getChildLogger({ subsystem });
417+fileLogger = getChildLogger({ subsystem: resolvedSubsystem });
407418}
408419logToFile(fileLogger, "info", message, { raw: true });
409420}
410421if (
411422shouldLogToConsole("info", { level: getConsoleSettings().level }) &&
412-shouldLogSubsystemToConsole(subsystem)
423+shouldLogSubsystemToConsole(resolvedSubsystem)
413424) {
414-if (shouldSuppressProbeConsoleLine({ level: "info", subsystem, message })) {
425+if (
426+shouldSuppressProbeConsoleLine({
427+level: "info",
428+subsystem: resolvedSubsystem,
429+ message,
430+})
431+) {
415432return;
416433}
417434writeConsoleLine("info", message);
418435}
419436},
420437child(name) {
421-return createSubsystemLogger(`${subsystem}/${name}`);
438+return createSubsystemLogger(`${resolvedSubsystem}/${name}`);
422439},
423440};
424441return logger;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。