@gati-framework/runtime
Version:
Gati runtime execution engine for running handler-based applications
54 lines • 1.53 kB
JavaScript
/**
* @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