Règles de logging
Les logs de Lutèce
Lutèce dispose de plusieurs fichiers de logs :
- application.log contient les principaux événements de l'application : chargement des services, des plugins, etc
- error.log contient tous les faits anormaux.
Gestion des exceptions
Toute exception doit être consignée dans un fichier log.
Les blocs catchne doivent jamais être vide ou faire appel à e.printStackTrace()
Exceptions non critiques
Les exceptions ne nécessitant pas l'arrêt du traitement en cours doivent être loguées de la manière suivante
catch( Exception e ) { AppLogService.error( e.getMessage() , e ); }
Exceptions critiques
Les exceptions nécessitant l'arrêt du traitement (exemples : erreur SQL, problème d'accès fichier, ...) doivent lever une exception dérivée de LuteceException (PhysicalException , ClientException ...). La classe LuteceException réalise elle-même l'écriture dans les logs. Le traitement du bloc catchsera alors réalisé de la manière suivante :
catch( Exception e ) { throw new AppException( e.getMessage() , e ); }
Exceptions applicatives
Les exceptions applicatives, telles que UserActionException , sont les seules qui ne nécessitent pas d'être loguées car elles correspondent à un cas normal d'exécution de l'application.