Skip to content

Commit 93aa053

Browse files
author
Deploy Bot
committed
fix(core): delegate to original console in ConsoleInterceptor to preserve log chain (#2900)
1 parent 023c3fd commit 93aa053

File tree

2 files changed

+49
-10
lines changed

2 files changed

+49
-10
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@trigger.dev/core": patch
3+
---
4+
5+
Fix: ConsoleInterceptor now delegates to original console methods to preserve log chain when other interceptors (like Sentry) are present. (#2900)

packages/core/src/v3/consoleInterceptor.ts

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,17 @@ export class ConsoleInterceptor {
1313
private readonly sendToStdIO: boolean,
1414
private readonly interceptingDisabled: boolean,
1515
private readonly maxAttributeCount?: number
16-
) {}
16+
) { }
17+
18+
private originalConsole:
19+
| {
20+
log: Console["log"];
21+
info: Console["info"];
22+
warn: Console["warn"];
23+
error: Console["error"];
24+
debug: Console["debug"];
25+
}
26+
| undefined;
1727

1828
// Intercept the console and send logs to the OpenTelemetry logger
1929
// during the execution of the callback
@@ -23,7 +33,7 @@ export class ConsoleInterceptor {
2333
}
2434

2535
// Save the original console methods
26-
const originalConsole = {
36+
this.originalConsole = {
2737
log: console.log,
2838
info: console.info,
2939
warn: console.warn,
@@ -42,11 +52,15 @@ export class ConsoleInterceptor {
4252
return await callback();
4353
} finally {
4454
// Restore the original console methods
45-
console.log = originalConsole.log;
46-
console.info = originalConsole.info;
47-
console.warn = originalConsole.warn;
48-
console.error = originalConsole.error;
49-
console.debug = originalConsole.debug;
55+
if (this.originalConsole) {
56+
console.log = this.originalConsole.log;
57+
console.info = this.originalConsole.info;
58+
console.warn = this.originalConsole.warn;
59+
console.error = this.originalConsole.error;
60+
console.debug = this.originalConsole.debug;
61+
62+
this.originalConsole = undefined;
63+
}
5064
}
5165
}
5266

@@ -79,10 +93,30 @@ export class ConsoleInterceptor {
7993
const body = util.format(...args);
8094

8195
if (this.sendToStdIO) {
82-
if (severityNumber === SeverityNumber.ERROR) {
83-
process.stderr.write(body);
96+
if (this.originalConsole) {
97+
switch (severityNumber) {
98+
case SeverityNumber.INFO:
99+
this.originalConsole.log(...args);
100+
break;
101+
case SeverityNumber.WARN:
102+
this.originalConsole.warn(...args);
103+
break;
104+
case SeverityNumber.ERROR:
105+
this.originalConsole.error(...args);
106+
break;
107+
case SeverityNumber.DEBUG:
108+
this.originalConsole.debug(...args);
109+
break;
110+
default:
111+
this.originalConsole.log(...args);
112+
break;
113+
}
84114
} else {
85-
process.stdout.write(body);
115+
if (severityNumber === SeverityNumber.ERROR) {
116+
process.stderr.write(body + "\n");
117+
} else {
118+
process.stdout.write(body + "\n");
119+
}
86120
}
87121
}
88122

0 commit comments

Comments
 (0)