conflutora
Version:
Provider to convert and publish Antora documentation on Confluence
38 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const node_util_1 = require("node:util");
const winston_1 = require("winston");
const SPLAT_SYMBOL = Symbol.for('splat');
class Logger {
logger;
constructor(prefix) {
this.logger = (0, winston_1.createLogger)({
level: 'info', // TODO: Change this with config property
format: winston_1.format.combine(winston_1.format.label({ label: prefix }), winston_1.format.timestamp(), (0, winston_1.format)((info) => {
const messageAndArgs = Array.isArray(info[SPLAT_SYMBOL]) ? [info.message, ...info[SPLAT_SYMBOL]] : [info.message];
info.message = messageAndArgs.map(obj => typeof obj !== 'object'
? obj
: (0, node_util_1.inspect)(obj, { depth: 5, colors: true })).join(' ');
return info;
})(), winston_1.format.printf(({ level, message, label, timestamp, ...args }) => {
return `${timestamp} [${label}] ${level}: ${message}`;
})),
transports: [new winston_1.transports.Console()]
});
}
error(message, ...args) {
this.logger.error(message, ...args);
}
warn(message, ...args) {
this.logger.warn(message, ...args);
}
info(message, ...args) {
this.logger.info(message, ...args);
}
debug(message, ...args) {
this.logger.debug(message, ...args);
}
}
exports.Logger = Logger;
//# sourceMappingURL=Logger.js.map