UNPKG

create-sekiban-app

Version:

Create a new Sekiban application with Dapr

45 lines (39 loc) 1.24 kB
const logLevels = { error: 0, warn: 1, info: 2, debug: 3, } as const; type LogLevel = keyof typeof logLevels; const currentLogLevel: LogLevel = (process.env.LOG_LEVEL as LogLevel) || 'info'; const shouldLog = (level: LogLevel): boolean => { return logLevels[level] <= logLevels[currentLogLevel]; }; const formatMessage = (level: LogLevel, message: string, ...args: any[]): string => { const timestamp = new Date().toISOString(); const formattedArgs = args.length > 0 ? ' ' + JSON.stringify(args) : ''; return `[${timestamp}] [${level.toUpperCase()}] ${message}${formattedArgs}`; }; const logger = { error: (message: string, ...args: any[]) => { if (shouldLog('error')) { console.error(formatMessage('error', message, ...args)); } }, warn: (message: string, ...args: any[]) => { if (shouldLog('warn')) { console.warn(formatMessage('warn', message, ...args)); } }, info: (message: string, ...args: any[]) => { if (shouldLog('info')) { console.log(formatMessage('info', message, ...args)); } }, debug: (message: string, ...args: any[]) => { if (shouldLog('debug')) { console.log(formatMessage('debug', message, ...args)); } }, }; export default logger;