Mercurial > hg > orthanc-stone
view Platforms/Wasm/logger.ts @ 526:548eed46f535 dev
introduced a Logger class that displays timing and source (C++/JS)
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 14 Mar 2019 19:04:35 +0100 |
parents | |
children | 70992b38aa8a |
line wrap: on
line source
export enum LogSource { Cpp, Typescript } export class StandardConsoleLogger { public showSource: boolean = true; public debug(...args: any[]): void { this._debug(LogSource.Typescript, ...args); } public info(...args: any[]): void { this._info(LogSource.Typescript, ...args); } public infoFromCpp(message: string): void { this._info(LogSource.Cpp, message); } public warning(...args: any[]): void { this._warning(LogSource.Typescript, ...args); } public error(...args: any[]): void { this._error(LogSource.Typescript, ...args); } public errorFromCpp(message: string): void { this._error(LogSource.Cpp, message); } public _debug(source: LogSource, ...args: any[]): void { var output = this.getOutput(source, args); console.debug(...output); } private _info(source: LogSource, ...args: any[]): void { var output = this.getOutput(source, args); console.info(...output); } public _warning(source: LogSource, ...args: any[]): void { var output = this.getOutput(source, args); console.warn(...output); } public _error(source: LogSource, ...args: any[]): void { var output = this.getOutput(source, args); console.error(...output); } private getOutput(source: LogSource, args: any[]): any[] { var prefix = this.getPrefix(); var prefixAndSource = []; if (prefix != null) { prefixAndSource = [prefix]; } if (this.showSource) { if (source == LogSource.Typescript) { prefixAndSource = [...prefixAndSource, "TS "]; } else if (source == LogSource.Cpp) { prefixAndSource = [...prefixAndSource, "C++"]; } } if (prefixAndSource.length > 0) { prefixAndSource = [...prefixAndSource, "|"]; } return [...prefixAndSource, ...args]; } protected getPrefix(): string { return null; } } export class TimeConsoleLogger extends StandardConsoleLogger { protected getPrefix(): string { let now = new Date(); let timeString = now.getHours().toString().padStart(2, "0") + ":" + now.getMinutes().toString().padStart(2, "0") + ":" + now.getSeconds().toString().padStart(2, "0") + "." + now.getMilliseconds().toString().padStart(3, "0"); return timeString; } } export var defaultLogger: StandardConsoleLogger = new TimeConsoleLogger();