@miracledevs/paradigm-express-webapi
Version:
An easy to use MVC WebApi implementation over Express.
66 lines • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const log_type_1 = require("./log-type");
const console_log_provider_1 = require("./console-log-provider");
class Logger {
constructor() {
this._minimumLogLevel = log_type_1.LogType.Info;
this._logProvider = new console_log_provider_1.ConsoleLogProvider();
this._messageFormat = "[{date}][{type}] - {message}";
}
setMinimumLevel(type) {
this._minimumLogLevel = type;
}
setLogProvider(logProvider) {
this._logProvider = logProvider;
}
setMessageFormat(messageFormat) {
this._messageFormat = messageFormat;
}
trace(message) {
this.log(message, log_type_1.LogType.Trace);
}
debug(message) {
this.log(message, log_type_1.LogType.Debug);
}
info(message) {
this.log(message, log_type_1.LogType.Info);
}
warning(message) {
this.log(message, log_type_1.LogType.Warning);
}
error(message) {
this.log(message, log_type_1.LogType.Error);
}
log(message, type) {
if (type < this._minimumLogLevel) {
return;
}
message = this._messageFormat
.replace(/\{date\}/g, new Date().toJSON())
.replace(/\{type\}/g, log_type_1.LogType[type])
.replace(/\{message\}/g, message);
switch (type) {
case log_type_1.LogType.Trace:
this._logProvider.trace(message);
break;
case log_type_1.LogType.Debug:
this._logProvider.debug(message);
break;
case log_type_1.LogType.Info:
this._logProvider.info(message);
break;
case log_type_1.LogType.Warning:
this._logProvider.warning(message);
break;
case log_type_1.LogType.Error:
this._logProvider.error(message);
break;
default:
throw new Error("The log type is not valid.");
}
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map