43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
const isProd = process.env.NODE_ENV === 'production';
|
|
|
|
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
|
|
// Simple environment-aware logger so we can keep useful errors
|
|
// while silencing noisy debug logs in production.
|
|
export const logger = {
|
|
debug: (...args: any[]) => {
|
|
if (!isProd) {
|
|
console.debug(...args);
|
|
}
|
|
},
|
|
info: (...args: any[]) => {
|
|
if (!isProd) {
|
|
console.info(...args);
|
|
}
|
|
},
|
|
warn: (...args: any[]) => {
|
|
// Warnings are generally safe but can be noisy; hide in prod by default.
|
|
if (!isProd) {
|
|
console.warn(...args);
|
|
}
|
|
},
|
|
error: (...args: any[]) => {
|
|
// Always log errors; callers must avoid passing secrets / full payloads.
|
|
console.error(...args);
|
|
},
|
|
log: (level: LogLevel, ...args: any[]) => {
|
|
switch (level) {
|
|
case 'debug':
|
|
return logger.debug(...args);
|
|
case 'info':
|
|
return logger.info(...args);
|
|
case 'warn':
|
|
return logger.warn(...args);
|
|
case 'error':
|
|
return logger.error(...args);
|
|
}
|
|
},
|
|
};
|
|
|
|
|