veza/apps/web/src/utils/logger.ts

48 lines
1.2 KiB
TypeScript

/**
* Logger conditionnel pour la production
* Remplace console.log/info/warn/error par des fonctions conditionnelles
* En production, seuls les erreurs critiques sont loggées
*/
interface Logger {
debug: (...args: unknown[]) => void;
info: (...args: unknown[]) => void;
warn: (...args: unknown[]) => void;
error: (...args: unknown[]) => void;
}
const isDev = import.meta.env.DEV;
const isProd = import.meta.env.PROD;
/**
* Logger conditionnel qui filtre les logs selon l'environnement
*/
export const logger: Logger = {
debug: (...args: unknown[]) => {
if (isDev) {
console.debug('[DEBUG]', ...args);
}
},
info: (...args: unknown[]) => {
if (isDev) {
console.info('[INFO]', ...args);
}
},
warn: (...args: unknown[]) => {
// Warnings toujours loggés, mais avec préfixe en prod
if (isProd) {
console.warn('[WARN]', ...args);
} else {
console.warn('[WARN]', ...args);
}
},
error: (...args: unknown[]) => {
// Erreurs toujours loggées en production pour le debugging
console.error('[ERROR]', ...args);
},
};
/**
* Export par défaut pour faciliter l'import
*/
export default logger;