UNPKG

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
"use strict"; 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