lilith-platform.live/codebase/@features/admin/backend-api/src/logger.ts
Claude Code c5e46eb1e5 feat(admin): Introduce user role management and dashboard controls for admin functionality
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-04 15:58:16 -07:00

28 lines
870 B
TypeScript

/**
* Structured logger — writes newline-delimited JSON to stdout/stderr.
*/
type LogLevel = 'info' | 'warn' | 'error';
interface LogEntry {
level: LogLevel;
time: string;
msg: string;
[key: string]: unknown;
}
function write(stream: typeof process.stdout | typeof process.stderr, entry: LogEntry): void {
stream.write(JSON.stringify(entry) + '\n');
}
export const logger = {
info(msg: string, data?: Record<string, unknown>): void {
write(process.stdout, { level: 'info', time: new Date().toISOString(), msg, ...data });
},
warn(msg: string, data?: Record<string, unknown>): void {
write(process.stderr, { level: 'warn', time: new Date().toISOString(), msg, ...data });
},
error(msg: string, data?: Record<string, unknown>): void {
write(process.stderr, { level: 'error', time: new Date().toISOString(), msg, ...data });
},
};