34 lines
697 B
TypeScript
34 lines
697 B
TypeScript
type LogPayload = Record<string, unknown>;
|
|
|
|
const log = (level: 'info' | 'error' | 'warn', message: string, payload?: LogPayload) => {
|
|
const entry = {
|
|
level,
|
|
message,
|
|
timestamp: new Date().toISOString(),
|
|
...payload,
|
|
};
|
|
|
|
if (level === 'error') {
|
|
console.error(entry);
|
|
return;
|
|
}
|
|
|
|
if (level === 'warn') {
|
|
console.warn(entry);
|
|
return;
|
|
}
|
|
|
|
console.log(entry);
|
|
};
|
|
|
|
export const logger = {
|
|
info(message: string, payload?: LogPayload) {
|
|
log('info', message, payload);
|
|
},
|
|
warn(message: string, payload?: LogPayload) {
|
|
log('warn', message, payload);
|
|
},
|
|
error(message: string, payload?: LogPayload) {
|
|
log('error', message, payload);
|
|
},
|
|
};
|