import { ILogger, Loggable, LogLevel } from '@theia/core'; export class NullLogger implements ILogger { logLevel = 0; setLogLevel(logLevel: number): Promise { this.logLevel = logLevel; return Promise.resolve(); } getLogLevel(): Promise { return Promise.resolve(this.logLevel); } isEnabled(logLevel: number): Promise { return Promise.resolve(logLevel >= this.logLevel); } ifEnabled(logLevel: number): Promise { if (logLevel >= this.logLevel) return Promise.resolve(); else return Promise.reject(); } log(logLevel: any, loggable: any, ...rest: any[]) { return Promise.resolve(); } isTrace(): Promise { return this.isEnabled(LogLevel.TRACE); } ifTrace(): Promise { return this.ifEnabled(LogLevel.TRACE); } trace(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.TRACE, arg, ...params); } isDebug(): Promise { return this.isEnabled(LogLevel.DEBUG); } ifDebug(): Promise { return this.ifEnabled(LogLevel.DEBUG); } debug(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.DEBUG, arg, ...params); } isInfo(): Promise { return this.isEnabled(LogLevel.INFO); } ifInfo(): Promise { return this.ifEnabled(LogLevel.INFO); } info(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.INFO, arg, ...params); } isWarn(): Promise { return this.isEnabled(LogLevel.WARN); } ifWarn(): Promise { return this.ifEnabled(LogLevel.WARN); } warn(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.WARN, arg, ...params); } isError(): Promise { return this.isEnabled(LogLevel.ERROR); } ifError(): Promise { return this.ifEnabled(LogLevel.ERROR); } error(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.ERROR, arg, ...params); } isFatal(): Promise { return this.isEnabled(LogLevel.FATAL); } ifFatal(): Promise { return this.ifEnabled(LogLevel.FATAL); } fatal(arg: any | Loggable, ...params: any[]): Promise { return this.log(LogLevel.FATAL, arg, ...params); } child(name: string): ILogger { return this; } }