1
1
/* @internal */
2
2
namespace ts {
3
- export type PerfLogger = typeof import ( "@microsoft/typescript-etw" ) ; // tslint:disable-line:no-implicit-dependencies
4
-
5
- export class NullLogger implements PerfLogger {
6
- logEvent ( _msg : string ) : void {
7
- return ;
8
- }
9
- logErrEvent ( _msg : string ) : void {
10
- return ;
11
- }
12
- logPerfEvent ( _msg : string ) : void {
13
- return ;
14
- }
15
- logInfoEvent ( _msg : string ) : void {
16
- return ;
17
- }
18
- logStartCommand ( _command : string , _msg : string ) : void {
19
- return ;
20
- }
21
- logStopCommand ( _command : string , _msg : string ) : void {
22
- return ;
23
- }
24
- logStartUpdateProgram ( _msg : string ) : void {
25
- return ;
26
- }
27
- logStopUpdateProgram ( _msg : string ) : void {
28
- return ;
29
- }
30
- logStartUpdateGraph ( ) : void {
31
- return ;
32
- }
33
- logStopUpdateGraph ( ) : void {
34
- return ;
35
- }
36
- logStartResolveModule ( _name : string ) : void {
37
- return ;
38
- }
39
- logStopResolveModule ( _success : string ) : void {
40
- return ;
41
- }
42
- logStartParseSourceFile ( _filename : string ) : void {
43
- return ;
44
- }
45
- logStopParseSourceFile ( ) : void {
46
- return ;
47
- }
48
- logStartReadFile ( _filename : string ) : void {
49
- return ;
50
- }
51
- logStopReadFile ( ) : void {
52
- return ;
53
- }
54
- logStartBindFile ( _filename : string ) : void {
55
- return ;
56
- }
57
- logStopBindFile ( ) : void {
58
- return ;
59
- }
60
- logStartScheduledOperation ( _operationId : string ) : void {
61
- return ;
62
- }
63
- logStopScheduledOperation ( ) : void {
64
- return ;
65
- }
66
- }
3
+ type PerfLogger = typeof import ( "@microsoft/typescript-etw" ) ; // tslint:disable-line:no-implicit-dependencies
4
+ const nullLogger : PerfLogger = {
5
+ logEvent : noop ,
6
+ logErrEvent : noop ,
7
+ logPerfEvent : noop ,
8
+ logInfoEvent : noop ,
9
+ logStartCommand : noop ,
10
+ logStopCommand : noop ,
11
+ logStartUpdateProgram : noop ,
12
+ logStopUpdateProgram : noop ,
13
+ logStartUpdateGraph : noop ,
14
+ logStopUpdateGraph : noop ,
15
+ logStartResolveModule : noop ,
16
+ logStopResolveModule : noop ,
17
+ logStartParseSourceFile : noop ,
18
+ logStopParseSourceFile : noop ,
19
+ logStartReadFile : noop ,
20
+ logStopReadFile : noop ,
21
+ logStartBindFile : noop ,
22
+ logStopBindFile : noop ,
23
+ logStartScheduledOperation : noop ,
24
+ logStopScheduledOperation : noop ,
25
+ } ;
67
26
68
27
// Load optional module to enable Event Tracing for Windows
69
28
// See https://github.com/microsoft/typescript-etw for more information
@@ -77,5 +36,8 @@ namespace ts {
77
36
etwModule = undefined ;
78
37
}
79
38
80
- export const perfLogger : PerfLogger = etwModule ? etwModule : new NullLogger ( ) ;
81
- }
39
+ /** Performance logger that will generate ETW events if possible */
40
+ export const perfLogger : PerfLogger = etwModule ? etwModule : nullLogger ;
41
+
42
+ perfLogger . logInfoEvent ( `Starting TypeScript v${ versionMajorMinor } with command line: ${ JSON . stringify ( process . argv ) } ` ) ;
43
+ }
0 commit comments