@@ -19,13 +19,15 @@ namespace ts.server {
19
19
getLogFileName : returnUndefined ,
20
20
} ;
21
21
22
- // Save off original versions before they are overwitten
23
- const consoleLog = console . log . bind ( console ) ;
24
- const consoleError = console . error . bind ( console ) ;
22
+ type MessageLogLevel = "info" | "perf" | "error" ;
25
23
26
- class ConsoleLogger implements Logger {
24
+ interface LoggingMessage {
25
+ readonly type : "log" ;
26
+ readonly level : MessageLogLevel ;
27
+ readonly body : string
28
+ }
27
29
28
- private readonly topLevelGroupName = "TS Server" ;
30
+ class MainProcessLogger implements Logger {
29
31
30
32
private currentGroupCount = 0 ;
31
33
private seq = 0 ;
@@ -71,16 +73,16 @@ namespace ts.server {
71
73
72
74
switch ( type ) {
73
75
case Msg . Info :
74
- this . write ( ( ) => { consoleLog ( s ) ; } ) ;
76
+ this . write ( "info" , s ) ;
75
77
break ;
76
78
77
79
case Msg . Perf :
78
- this . write ( ( ) => { consoleLog ( s ) ; } ) ;
80
+ this . write ( "perf" , s ) ;
79
81
break ;
80
82
81
83
case Msg . Err :
82
84
default :
83
- this . write ( ( ) => { consoleError ( s ) ; } ) ;
85
+ this . write ( "error" , s ) ;
84
86
break ;
85
87
}
86
88
@@ -93,14 +95,12 @@ namespace ts.server {
93
95
return undefined ;
94
96
}
95
97
96
- private write ( f : ( ) => void ) {
97
- console . group ( this . topLevelGroupName ) ;
98
- try {
99
- f ( ) ;
100
- }
101
- finally {
102
- console . groupEnd ( ) ;
103
- }
98
+ private write ( level : MessageLogLevel , body : string ) {
99
+ postMessage ( < LoggingMessage > {
100
+ type : "log" ,
101
+ level,
102
+ body,
103
+ } ) ;
104
104
}
105
105
}
106
106
@@ -137,7 +137,7 @@ namespace ts.server {
137
137
138
138
function createLogger ( ) {
139
139
const cmdLineVerbosity = getLogLevel ( findArgument ( "--logVerbosity" ) ) ;
140
- return typeof cmdLineVerbosity === "undefined" ? nullLogger : new ConsoleLogger ( cmdLineVerbosity ) ;
140
+ return typeof cmdLineVerbosity === "undefined" ? nullLogger : new MainProcessLogger ( cmdLineVerbosity ) ;
141
141
}
142
142
143
143
function createWebSystem ( args : string [ ] ) {
0 commit comments