@@ -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