lilith-platform.live/codebase/@features/api/src/shared/logger.ts
2026-04-18 19:25:55 -07:00

19 lines
750 B
TypeScript

type Level = 'debug' | 'info' | 'warn' | 'error';
function emit(level: Level, msg: string, meta?: Record<string, unknown>): void {
const line = {
ts: new Date().toISOString(),
level,
msg,
...(meta ?? {}),
};
const stream = level === 'error' || level === 'warn' ? process.stderr : process.stdout;
stream.write(`${JSON.stringify(line)}\n`);
}
export const logger = {
debug: (msg: string, meta?: Record<string, unknown>): void => emit('debug', msg, meta),
info: (msg: string, meta?: Record<string, unknown>): void => emit('info', msg, meta),
warn: (msg: string, meta?: Record<string, unknown>): void => emit('warn', msg, meta),
error: (msg: string, meta?: Record<string, unknown>): void => emit('error', msg, meta),
};