@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
79 lines • 3.05 kB
JavaScript
import { LoggerLevel } from './logger-level';
export class Logger {
constructor(loggerLevel) {
this.loggerLevel = loggerLevel;
this.debugDisabled = this.loggerLevel > LoggerLevel.Debug;
this.infoDisabled = this.loggerLevel > LoggerLevel.Info;
this.warnDisabled = this.loggerLevel > LoggerLevel.Warn;
this.errorDisabled = this.loggerLevel > LoggerLevel.Error;
this.supportsConsole = console !== undefined && console !== null;
this.supportsConsoleLog = this.supportsConsole && console.log !== undefined && console.log !== null;
this.supportsConsoleInfo = this.supportsConsole && console.info !== undefined && console.info !== null;
this.supportsConsoleWarn = this.supportsConsole && console.warn !== undefined && console.warn !== null;
this.supportsConsoleError = this.supportsConsole && console.error !== undefined && console.error !== null;
return;
}
format(component, loggerLevel, message) {
return `[${component}][${loggerLevel}]: ${message}`;
}
debug(component, message, ...optionalParams) {
if (this.debugDisabled) {
return;
}
if (this.supportsConsoleLog) {
const debugMessage = this.format(component, 'Debug', message);
console.log(debugMessage, ...optionalParams);
return;
}
return;
}
info(component, message, ...optionalParams) {
if (this.infoDisabled) {
return;
}
if (this.supportsConsoleInfo) {
const infoMessage = this.format(component, 'Info', message);
console.info(infoMessage, ...optionalParams);
return;
}
if (this.supportsConsoleLog) {
const infoMessage = this.format(component, 'Info', message);
console.log(infoMessage, ...optionalParams);
return;
}
return;
}
warn(component, message, ...optionalParams) {
if (this.warnDisabled) {
return;
}
if (this.supportsConsoleWarn) {
const warnMessage = this.format(component, 'Warn', message);
console.warn(warnMessage, ...optionalParams);
return;
}
if (this.supportsConsoleLog) {
const warnMessage = this.format(component, 'Warn', message);
console.log(warnMessage, ...optionalParams);
return;
}
return;
}
error(component, message, ...optionalParams) {
if (this.errorDisabled) {
return;
}
if (this.supportsConsoleError) {
const errorMessage = this.format(component, 'Error', message);
console.error(errorMessage, ...optionalParams);
return;
}
if (this.supportsConsoleLog) {
const errorMessage = this.format(component, 'Error', message);
console.log(errorMessage, ...optionalParams);
return;
}
return;
}
}
//# sourceMappingURL=logger.js.map