2025-07-24 16:34:58 +02:00

35 lines
913 B
TypeScript

type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
function getTimestamp(): string {
return new Date().toISOString();
}
function _log(level: LogLevel, ...args: unknown[]): void {
const timestamp = getTimestamp();
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
switch (level) {
case 'debug':
console.debug(prefix, ...args);
break;
case 'info':
console.info(prefix, ...args);
break;
case 'warn':
console.warn(prefix, ...args);
break;
case 'error':
case 'fatal':
console.error(prefix, ...args);
break;
}
}
export const log = {
debug: (...args: unknown[]) => _log('debug', ...args),
info: (...args: unknown[]) => _log('info', ...args),
warn: (...args: unknown[]) => _log('warn', ...args),
error: (...args: unknown[]) => _log('error', ...args),
fatal: (...args: unknown[]) => _log('fatal', ...args),
};