Use 'noop' for NullLogger

This commit is contained in:
Michael Crane 2019-08-02 10:20:17 -07:00
parent fa3e9c86db
commit d34cf52576
3 changed files with 29 additions and 69 deletions

View file

@ -4,8 +4,6 @@ namespace ts {
export const versionMajorMinor = "3.6";
/** The version of the TypeScript compiler release */
export const version = `${versionMajorMinor}.0-dev`;
perfLogger.logInfoEvent(`Starting TypeScript v${versionMajorMinor} with command line: ${JSON.stringify(process.argv)}`);
}
namespace ts {

View file

@ -1,69 +1,28 @@
/* @internal */
namespace ts {
export type PerfLogger = typeof import("@microsoft/typescript-etw"); // tslint:disable-line:no-implicit-dependencies
export class NullLogger implements PerfLogger {
logEvent(_msg: string): void {
return;
}
logErrEvent(_msg: string): void {
return;
}
logPerfEvent(_msg: string): void {
return;
}
logInfoEvent(_msg: string): void {
return;
}
logStartCommand(_command: string, _msg: string): void {
return;
}
logStopCommand(_command: string, _msg: string): void {
return;
}
logStartUpdateProgram(_msg: string): void {
return;
}
logStopUpdateProgram(_msg: string): void {
return;
}
logStartUpdateGraph(): void {
return;
}
logStopUpdateGraph(): void {
return;
}
logStartResolveModule(_name: string): void {
return;
}
logStopResolveModule(_success: string): void {
return;
}
logStartParseSourceFile(_filename: string): void {
return;
}
logStopParseSourceFile(): void {
return;
}
logStartReadFile(_filename: string): void {
return;
}
logStopReadFile(): void {
return;
}
logStartBindFile(_filename: string): void {
return;
}
logStopBindFile(): void {
return;
}
logStartScheduledOperation(_operationId: string): void {
return;
}
logStopScheduledOperation(): void {
return;
}
}
type PerfLogger = typeof import("@microsoft/typescript-etw"); // tslint:disable-line:no-implicit-dependencies
const nullLogger: PerfLogger = {
logEvent: noop,
logErrEvent: noop,
logPerfEvent: noop,
logInfoEvent: noop,
logStartCommand: noop,
logStopCommand: noop,
logStartUpdateProgram: noop,
logStopUpdateProgram: noop,
logStartUpdateGraph: noop,
logStopUpdateGraph: noop,
logStartResolveModule: noop,
logStopResolveModule: noop,
logStartParseSourceFile: noop,
logStopParseSourceFile: noop,
logStartReadFile: noop,
logStopReadFile: noop,
logStartBindFile: noop,
logStopBindFile: noop,
logStartScheduledOperation: noop,
logStopScheduledOperation: noop,
};
// Load optional module to enable Event Tracing for Windows
// See https://github.com/microsoft/typescript-etw for more information
@ -77,5 +36,8 @@ namespace ts {
etwModule = undefined;
}
export const perfLogger: PerfLogger = etwModule ? etwModule : new NullLogger();
}
/** Performance logger that will generate ETW events if possible */
export const perfLogger: PerfLogger = etwModule ? etwModule : nullLogger;
perfLogger.logInfoEvent(`Starting TypeScript v${versionMajorMinor} with command line: ${JSON.stringify(process.argv)}`);
}

View file

@ -7,10 +7,10 @@
"references": [],
"files": [
"perfLogger.ts",
"core.ts",
"debug.ts",
"performance.ts",
"perfLogger.ts",
"semver.ts",
"types.ts",