48 lines
1.2 KiB
TypeScript
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;
|