SmartCommon fournit un système de logs colorés pour faciliter le debug de votre application.
Dans la configuration du Provider :
const config = {
debug: true, // Active les logs globalement
api: {
debug: true // Active les logs API spécifiquement
}
};
En développement, utilisez la variable d'environnement :
const config = {
debug: import.meta.env.DEV // true en dev, false en prod
};
SmartCommon exporte un utilitaire log avec des méthodes colorées :
import { log } from '@cap-rel/smartcommon';
// Logs d'état
log.state('Changement d\'état:', newState);
log.globalState('État global mis à jour:', globalState);
// Logs de cycle de vie
log.effect('useEffect déclenché');
log.page('Page chargée: /dashboard');
// Logs de statut
log.success('Opération réussie');
log.error('Une erreur est survenue:', error);
log.warning('Attention:', message);
log.info('Information:', data);
// Logs API
log.apiLoading('GET', '/api/items');
log.apiSuccess('GET - 200', '/api/items');
log.apiError('GET - 404', '/api/items');
// Logs base de données
log.db('INSERT:', item);
// Logs de localisation
log.location('Navigation vers:', path);
// Log personnalisé
log.custom('MON_TAG', 'purple', 'Mon message', data);
Chaque type de log a une couleur distincte dans la console :
| Méthode | Couleur | Usage |
|---|---|---|
log.state | Bleu | Changements d'état local |
log.globalState | Cyan foncé | Changements d'état global |
log.effect | Violet | Effets React (useEffect) |
log.page | Orange | Chargement de pages |
log.success | Vert | Opérations réussies |
log.error | Rouge | Erreurs |
log.warning | Doré | Avertissements |
log.info | Gris | Informations |
log.apiLoading | Gris | Requête API en cours |
log.apiSuccess | Vert | Requête API réussie |
log.apiError | Rouge | Requête API échouée |
log.db | Bleu nuit | Opérations IndexedDB |
log.location | Rose | Navigation |
Quand debug: true est activé, SmartCommon log automatiquement :
const st = useStates({
initialStates: { count: 0 },
debug: true // Active les logs pour ce hook
});
st.set('count', 1);
// Console: [STATE] SET count => 1
const gst = useGlobalStates();
gst.local.set('user', userData);
// Console: [GLOBAL STATE] SET user => {...}
const db = useDb({
name: 'myApp',
stores: { items: 'id++' },
debug: true
});
await db.items.add({ name: 'Item' });
// Console: [DB] CREATE key = 1, item = {...}
// Avec api.debug: true dans la config
api.private.get('items');
// Console: [GET - LOADING] https://api.example.com/items
// Console: [GET - 200] https://api.example.com/items
Activez le debug uniquement pour certains hooks :
// Debug global désactivé
const config = { debug: false };
// Mais debug activé pour un hook spécifique
const st = useStates({
initialStates: { ... },
debug: true // Override la config globale
});
Les logs SmartCommon utilisent des styles CSS dans la console. Pour les voir correctement :
Dans la console, utilisez le filtre pour afficher uniquement certains types :
STATE pour voir les logs d'étatAPI pour voir les logs APIDB pour voir les logs base de données
const config = {
debug: import.meta.env.DEV,
api: {
debug: import.meta.env.DEV
}
};
import { log } from '@cap-rel/smartcommon';
import { useLibConfig } from '@cap-rel/smartcommon';
const MyComponent = () => {
const { debug } = useLibConfig();
const handleClick = () => {
if (debug) {
log.custom('MY_COMPONENT', 'teal', 'Button clicked');
}
// ...
};
};
// Mauvais
log.info('User logged in:', { password: user.password });
// Bon
log.info('User logged in:', { id: user.id, email: user.email });