@cronstamp/clientlib
Version:
Client library for cronstamp, a blockchain-based document timestamping and verification service.
73 lines • 2.53 kB
JavaScript
export var LOG_LEVELS;
(function (LOG_LEVELS) {
LOG_LEVELS[LOG_LEVELS["DEBUG"] = 0] = "DEBUG";
LOG_LEVELS[LOG_LEVELS["INFO"] = 1] = "INFO";
LOG_LEVELS[LOG_LEVELS["WARN"] = 2] = "WARN";
LOG_LEVELS[LOG_LEVELS["ERR"] = 3] = "ERR";
LOG_LEVELS[LOG_LEVELS["NONE"] = 4] = "NONE";
})(LOG_LEVELS || (LOG_LEVELS = {}));
let userLogFunction;
/**
* Overwrite the log function. Set to "undefined" to use standard logging to console.
* @param newLogFunction
*/
export function setLogFunction(newLogFunction = undefined) {
userLogFunction = newLogFunction;
}
export class Log {
module;
logLevel;
constructor(logLevel, module = undefined) {
this.module = module;
this.logLevel = logLevel;
}
setLogLevel(logLevel) {
this.logLevel = logLevel;
}
debug(message, ...objectInfo) {
this.log(LOG_LEVELS.DEBUG, message, ...objectInfo);
}
info(message, ...objectInfo) {
this.log(LOG_LEVELS.INFO, message, ...objectInfo);
}
warn(message, ...objectInfo) {
this.log(LOG_LEVELS.WARN, message, ...objectInfo);
}
err(message, ...objectInfo) {
this.log(LOG_LEVELS.ERR, message, ...objectInfo);
}
log(messageLogLevel, message, ...objectInfo) {
if (messageLogLevel >= this.logLevel) {
if (userLogFunction) {
userLogFunction(messageLogLevel, this.module, message, ...objectInfo);
}
else {
message =
'[' +
LOG_LEVELS[messageLogLevel] +
(this.module ? '|' + this.module : '') +
'][' +
new Date().toISOString() +
'] ' +
message;
switch (messageLogLevel) {
case LOG_LEVELS.DEBUG:
console.debug(message, ...objectInfo);
break;
case LOG_LEVELS.INFO:
console.info(message, ...objectInfo);
break;
case LOG_LEVELS.WARN:
console.warn(message, ...objectInfo);
break;
case LOG_LEVELS.ERR:
console.error(message, ...objectInfo);
break;
default:
console.log(message, ...objectInfo);
}
}
}
}
}
//# sourceMappingURL=logger.js.map