UNPKG

@gati-framework/runtime

Version:

Gati runtime execution engine for running handler-based applications

54 lines 1.53 kB
/** * @module runtime/logger * @description Structured logging utility using pino */ import pino from 'pino'; /** * Create a logger instance * * @param options - Logger configuration * @returns Pino logger instance * * @example * ```typescript * const logger = createLogger({ name: 'gati-app' }); * logger.info({ requestId: '123' }, 'Request started'); * logger.error({ error }, 'Request failed'); * ``` */ export function createLogger(options = {}) { const isDevelopment = process.env['NODE_ENV'] !== 'production'; const level = options.level || (isDevelopment ? 'debug' : 'info'); const pretty = options.pretty ?? isDevelopment; const config = { level, ...(options.name && { name: options.name }), }; // Pretty printing for development if (pretty) { try { return pino({ ...config, transport: { target: 'pino-pretty', options: { colorize: true, translateTime: 'SYS:HH:MM:ss', ignore: 'pid,hostname', }, }, }); } catch { // If pino-pretty is not available, fall back to regular logging return pino(config); } } // JSON logging for production return pino(config); } /** * Default logger instance */ export const logger = createLogger({ name: 'gati-runtime' }); //# sourceMappingURL=logger.js.map