UNPKG

@gsb-core/core

Version:

GSB core services and classes for platform-independent web applications

50 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = void 0; const gsb_config_1 = require("../config/gsb-config"); class Logger { constructor() { this.isDevelopment = (0, gsb_config_1.getEnvVar)('NODE_ENV', 'production') === 'development'; this.isDetailedLogs = (0, gsb_config_1.getEnvVar)('NEXT_PUBLIC_DETAILED_LOGS', 'false') === 'true'; } static getInstance() { if (!Logger.instance) { Logger.instance = new Logger(); } return Logger.instance; } log(level, ...args) { if (!this.isDevelopment && level === 'debug') return; const timestamp = new Date().toISOString(); const prefix = `[${timestamp}] [${level.toUpperCase()}]`; if (level === 'error') { console.error(prefix, ...args); } else if (level === 'warn') { console.warn(prefix, ...args); } else if (this.isDevelopment) { if (level === 'debug' && this.isDetailedLogs) { console.debug(prefix, ...args); } else if (level === 'info') { console.info(prefix, ...args); } } } debug(...args) { this.log('debug', ...args); } info(...args) { this.log('info', ...args); } warn(...args) { this.log('warn', ...args); } error(...args) { this.log('error', ...args); } } exports.logger = Logger.getInstance(); //# sourceMappingURL=logger.js.map