@pulzar/cli
Version:
Ultimate command-line interface for Pulzar framework - scaffolding, development server, building, testing, code generation, health diagnostics, security auditing, and deployment tools for modern Node.js applications
51 lines • 1.51 kB
JavaScript
export var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
LogLevel[LogLevel["WARN"] = 1] = "WARN";
LogLevel[LogLevel["INFO"] = 2] = "INFO";
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
})(LogLevel || (LogLevel = {}));
export class Logger {
options;
constructor(options = {}) {
this.options = {
level: LogLevel.INFO,
enableColors: true,
...options,
};
}
error(message, context) {
this.log(LogLevel.ERROR, message, context);
}
warn(message, context) {
this.log(LogLevel.WARN, message, context);
}
info(message, context) {
this.log(LogLevel.INFO, message, context);
}
debug(message, context) {
this.log(LogLevel.DEBUG, message, context);
}
success(message) {
console.log(`✓ ${message}`);
}
log(level, message, context) {
if (level > this.options.level)
return;
const timestamp = new Date().toISOString();
const levelName = LogLevel[level];
const contextStr = context ? ` ${JSON.stringify(context)}` : "";
const output = `[${timestamp}] ${levelName}: ${message}${contextStr}`;
console.log(output);
}
setLevel(level) {
this.options.level = level;
}
}
// Default logger instance
export const logger = new Logger();
// Factory function
export function createLogger(options) {
return new Logger(options);
}
//# sourceMappingURL=logger.js.map