morpheus4j
Version:
Morpheus is a migration tool for Neo4j. It aims to be a simple and intuitive way to migrate your database.
81 lines • 2.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const kleur_1 = require("kleur");
class Logger {
static logLevel = 'info';
static useJson = false;
static debug(message) {
if (!this.shouldLog('debug'))
return;
const timestamp = new Date().toISOString();
console.debug(this.formatMessage('debug', message, timestamp));
}
static error(message, error) {
if (!this.shouldLog('error'))
return;
const timestamp = new Date().toISOString();
const logMessage = this.formatMessage('error', message, timestamp);
console.error(logMessage);
if (error) {
console.error(this.formatMessage('error', error.stack || error.message, timestamp));
}
}
static info(message) {
if (!this.shouldLog('info'))
return;
const timestamp = new Date().toISOString();
console.log(this.formatMessage('info', message, timestamp));
}
static initialize(useJson = false, debug = false) {
this.logLevel = debug ? 'debug' : 'info';
this.useJson = useJson;
}
static isDebugEnabled() {
return this.logLevel === 'debug';
}
static warn(message) {
if (!this.shouldLog('warn'))
return;
const timestamp = new Date().toISOString();
console.warn(this.formatMessage('warn', message, timestamp));
}
static formatMessage(level, message, timestamp) {
if (this.useJson) {
return JSON.stringify({
level,
message: message instanceof Error ? message.message : message,
timestamp,
});
}
const prefix = this.getLevelPrefix(level);
const color = this.getColorForLevel(level);
return `${(0, kleur_1.gray)(timestamp)} ${color(prefix)} ${message}`;
}
static getColorForLevel(level) {
const colors = {
debug: kleur_1.gray,
default: kleur_1.gray,
error: kleur_1.red,
info: kleur_1.blue,
warn: kleur_1.yellow,
};
return colors[level] || colors.default;
}
static getLevelPrefix(level) {
const prefixes = {
debug: 'DEBUG',
default: '•',
error: '✖',
info: 'ℹ',
warn: '⚠',
};
return prefixes[level] || prefixes.default;
}
static shouldLog(level) {
const levels = ['debug', 'info', 'warn', 'error'];
return levels.indexOf(level) >= levels.indexOf(this.logLevel);
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map