@appruut/logger
Version:
Logging module for Node.js applications
115 lines (114 loc) • 3.27 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const pino_1 = __importDefault(require("pino"));
const abstract_logging_1 = __importDefault(require("abstract-logging"));
const Pino_1 = require("./Pino");
const STATIC_LEVELS = {
labels: {
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
},
values: {
fatal: 60,
error: 50,
warn: 40,
info: 30,
debug: 20,
trace: 10,
},
};
class Logger {
constructor(config, pino) {
this.config = config;
if (!this.config.enabled) {
this.pino = abstract_logging_1.default;
}
else {
this.pino = pino || Pino_1.getPino(this.config);
}
}
get levels() {
if (!this.config.enabled) {
return STATIC_LEVELS;
}
return this.pino.levels;
}
get level() {
if (!this.config.enabled) {
return this.config.level;
}
return this.pino.level;
}
set level(level) {
if (!this.config.enabled) {
this.config.level = level;
return;
}
this.pino.level = level;
}
get levelNumber() {
if (!this.config.enabled) {
return STATIC_LEVELS.values[this.config.level];
}
return this.pino.levelVal;
}
get pinoVersion() {
return pino_1.default.version;
}
isLevelEnabled(level) {
if (!this.config.enabled) {
return false;
}
return this.pino.isLevelEnabled(level);
}
log(level, mergingObject, message, ...values) {
if (values.length) {
this.pino[level](mergingObject, message, ...values);
}
else if (message) {
this.pino[level](mergingObject, message);
}
else {
this.pino[level](mergingObject);
}
}
trace(mergingObject, message, ...values) {
this.log("trace", mergingObject, message, ...values);
}
debug(mergingObject, message, ...values) {
this.log("debug", mergingObject, message, ...values);
}
info(mergingObject, message, ...values) {
this.log("info", mergingObject, message, ...values);
}
warn(mergingObject, message, ...values) {
this.log("warn", mergingObject, message, ...values);
}
error(mergingObject, message, ...values) {
this.log("error", mergingObject, message, ...values);
}
fatal(mergingObject, message, ...values) {
this.log("fatal", mergingObject, message, ...values);
}
child(bindings, options) {
if (!this.config.enabled) {
return this;
}
return new Logger(this.config, this.pino.child(bindings, options));
}
bindings() {
if (!this.config.enabled) {
return {};
}
return this.pino.bindings();
}
}
exports.Logger = Logger;