@gsb-core/core
Version:
GSB core services and classes for platform-independent web applications
50 lines • 1.55 kB
JavaScript
;
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