Chapitre 13. Le sous-système de journalisation
13.1. Introduction Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
13.1.1. Logging (Journalisation) Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
JBoss EAP 6 fournit des fonctionnalités de journalisation hautement configurables pour son propre usage et pour utilisation par des applications déployées. Le sous-système d'enregistrement est basé sur JBoss LogManager et prend en charge plusieurs frameworks de journalisation d'applications de tierce partie en plus du JBoss Logging.
Le sous-système de journalisation est configuré à l'aide d'un système de catégories de journaux et des gestionnaires de journaux. Les catégories de journalisation définissent quels messages capturer et les gestionnaires de journaux définissent comment procéder avec ces messages (écriture sur disque, envoyer à la console, etc.).
Le Profils de journalisation est une fonctionnalité ajoutée dans la version 6.1.0 qui permet à des configurations de journalisation possédant un nom unique d'être créées et assignées à des applications indépendamment de toute autre configuration de journalisation. La configuration des profils de journalisation est presque identique pour le sous-système de journalisation principal.
Toutes ces configurations peuvent être effectuées dans la Console de gestion avec le CLI.
13.1.2. Frameworks de journalisations d'applications pris en charge par JBoss LogManager Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
JBoss LogManager prend en charge les frameworks de journalisation suivants :
- JBoss Logging - inclus avec JBoss EAP 6
- Apache Commons Logging - http://commons.apache.org/logging/
- Simple Logging Facade dans Java (SLF4J) - http://www.slf4j.org/
- Apache log4j - http://logging.apache.org/log4j/1.2/
- Java SE Logging (java.util.logging) - http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html
13.1.3. Configuration du journal d'amorçage Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
La journalisation d'amorçage enregistre des événements qui ont lieu quand le serveur démarre (ou "est amorcé").
Le journal d'amorçage peut être configuré en modifiant le fichier
logging.properties. Ce fichier est un fichier standard de propriétés Java qui peut être modifié à l'aide d'un éditeur de texte. Chaque ligne du fichier possède le format property=value.
Selon que vous exécutez Jboss EAP 6 dans un domaine géré ou dans un serveur autonome, votre fichier de configuration
logging.properties se trouvera soit dans EAP_HOME/domain/configuration/logging.properties ou EAP_HOME/standalone/configuration/logging.properties.
13.1.4. Emplacements de fichiers de journalisation par défaut Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Il s'agit des fichiers de journalisation qui ont été créés pour les configurations de journalisation par défaut. La configuration par défaut écrit des fichiers de journalisation du serveur à l'aide de gestionnaires de journaux périodiques.
| Fichier journal | Description |
|---|---|
EAP_HOME/standalone/log/server.log |
Le journal du serveur. Contient les messages de journalisation de serveur, dont les messages de démarrage de serveur.
|
| Fichier journal | Description |
|---|---|
EAP_HOME/domain/log/host-controller.log |
Journal d'amorçage du contrôleur hôte. Contient les messages de journalisation liés au démarrage du contrôleur hôte.
|
EAP_HOME/domain/log/process-controller.log |
Journal d'amorçage du contrôleur de processus. Contient les messages de journalisation liés au démarrage du contrôleur de processus.
|
EAP_HOME/domain/servers/SERVERNAME/log/server.log |
Le journal du serveur pour le serveur nommé. Contient les messages de journalisation de ce serveur, dont les messages de démarrage de serveur.
|
13.1.5. Filtre les expressions de journalisation Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Avertissement
Topic 21482, Revision 506957 failed validation and is not included in this build.
13.1.6. Niveaux de journalisation Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Les niveaux de journalisation sont des ensembles ordonnés de valeurs énumérées qui indiquent la nature et la sévérité d'un message de journalisation. Le niveau d'un message de journalisation donné est indiqué par le développeur par des méthodes qui conviennent dans un framework de journalisation particulier pour envoyer le message.
JBoss EAP 6 accepte tous les niveaux de journalisation utilisés par les frameworks de journalisation de l'application prise en charge. Les six niveaux de journalisation les plus utilisés sont (dans l'ordre croissant) :
TRACE, DEBOG, INFO, ATTENTION, ERREUR et FATAL.
Les niveaux de journalisation sont utilisés par des catégories et gestionnaires de journalisation pour limiter les messages dont ils sont responsables. Chaque niveau de journalisation possède une valeur numérique qui indique son ordre par rapport à d'autres niveaux de journalisation. Les catégories et gestionnaires de journalisation correspondent à un certain niveau de journalisation, et ils traitent les messages de journalisation du même niveau ou d'un niveau supérieur uniquement. Par exemple, un gestionnaire de journalisation du niveau
ATTENTION enregistrera uniquement les messages des niveaux ATTENTION, ERREUR et FATAL.
13.1.7. Niveaux de journalisation pris en charge Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
| Niveau de journalisation | Valeur | Description |
|---|---|---|
| FINESSE MAX | 300 |
-
|
| PLUS FIN | 400 |
-
|
| TRACE | 400 |
Utilisé pour des messages qui fournissent des informations détaillées sur l'état d'exécution d'une application. Les messages de journalisation
TRACE sont habituellement capturés lors du débogage d'une application uniquement.
|
| DEBUG | 500 |
Utilisé pour des messages qui indiquent des demandes individuelles de progrès ou des activités d'une application. Les messages de journalisation
DEBUG ne sont habituellement capturés que lors du débogage d'une application.
|
| FINESSE | 500 |
-
|
| CONFIG | 700 |
-
|
| INFO | 800 |
Utilisé pour des messages qui indiquent la progression globale de l'application. Souvent utilisé pour le démarrage de l'application, la fermeture et autres événements majeurs de cycle de vie.
|
| AVERTISSEMENT | 900 |
Utilisé pour indiquer une situation qui n'est pas en erreur, mais n'est pas considérée comme idéale. Peut indiquer des circonstances qui peuvent entraîner des erreurs dans le futur.
|
| ATTENTION | 900 |
-
|
| ERREUR | 1000 |
Utiliser pour indiquer une erreur qui s'est produite et qui puisse empêcher l'activité actuelle ou la demande de se remplir, mais qui n'empêchera pas l'application d'exécuter.
|
| SÉVÈRE | 1000 |
-
|
| FATAL | 1100 |
Utiliser pour indiquer les événements qui pourraient entraîner des défaillances de services critiques ou la fermeture de l'application, ou qui pourraient entraîner la fermeture de la plateforme JBoss EAP 6.
|
13.1.8. Catégories de journalisation Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Les catégories de journalisation définissent les messages de journalisation à acquérir et un ou plusieurs gestionnaires de journalisation qui traitent les messages.
Les messages de journalisation à capturer sont définis par leur package Java d'origine et leurs niveau de journalisation. Les messages de classes de ce package et de niveau de journalisation ou niveau inférieur sont capturés par la catégorie de journalisation et envoyés aux gestionnaires de journal spécifiés.
Les catégories ont la possibilité d'utiliser les gestionnaires de journalisation du Root Logger au lieu de leurs propres gestionnaires.
13.1.9. Root Logger Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Le Root Logger capture tous les messages de journalisation qui sont envoyés au serveur (à un niveau indiqué) et qui ne sont pas capturés par une catégorie de journalisation particulière. Ces messages sont alors envoyés à un ou à plusieurs gestionnaires de journalisation.
Par défaut, le Root Logger est configuré pour utiliser une console et un gestionnaire de journalisation périodique. Le gestionnaire de journalisation périodique est configuré pour écrire sur le ficher
server.log. On prénomme parfois ce fichier : journal du serveur (server log).
13.1.10. Gestionnaires de journaux Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Les gestionnaires de journaux définissent la façon dont les messages de journalisation sont enregistrés dans JBoss EAP. Il existe six types de gestionnaires de journalisation configurables :
Console, File, Periodic, Size, Async et Custom.
13.1.11. Types de gestionnaires de journalisation Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
- Console
- Les gestionnaires de journaux de console écrivent des messages du journalisation soit dans le système d'exploitation hôte (stdout) ou dans le flux d'erreurs standard (stderr). Ces messages sont affichés lorsque JBoss EAP 6 est exécuté à partir d'une invite de ligne de commande. Les messages d'un gestionnaire de journal de Console ne sont pas enregistrés à moins que le système d'exploitation ne soit spécifiquement configuré pour capturer stdout ou stderr.
- Fichier
- Les gestionnaires de journaux de fichiers sont les gestionnaires de journalisation les plus simples, qui écrivent les messages de journalisation dans un fichier spécifique.
- Périodique
- Les gestionnaires de journaux périodiques écrivent des messages de journalisation dans un fichier nommé jusqu'à ce qu'une certaine durée se soit écoulée. Une fois que cette période a expiré, le fichier est nommé à nouveau en rajoutant l'horodatage et le gestionnaire continue d'écrire dans un fichier de journalisation nouvellement créée avec le nom d'origine.
- Taille
- Les gestionnaires de journaux de Taille écrivent les messages de journalisation dans un fichier jusqu'à ce que le fichier atteigne une taille spécifiée. Lorsque le fichier atteint une taille donnée, il est renommé avec un préfixe numérique et le gestionnaire continue d'écrire dans un fichier journal récemment créé avec le nom d'origine. Chaque gestionnaire de journaux de Taille doit spécifier le nombre maximal de fichiers contenus de cette façon.
- Async
- Les gestionnaires de journaux async sont des gestionnaires de journaux wrapper qui fournissent un comportement asynchrone pour un ou plusieurs autres gestionnaires de journaux. Ils sont utiles pour les gestionnaires de journaux qui pourraient avoir une latence élevée ou autres problèmes de performances comme l'écriture d'un fichier journal à un système de fichiers réseau.
- Personnalisé
- Les gestionnaires d'informations personnalisées vous permettent de configurer de nouveaux types de gestionnaires de journaux mis en place. Un gestionnaire personnalisé doit être implémenté comme classe Java qui s'étend
java.util.logging.Handleret doit être contenu dans un module. - syslog
- Les gestionnaires de syslog peuvent être utilisés pour envoyer des messages à un serveur de journalisation à distance. Cela permet à plusieurs applications d'envoyer leurs messages de journalisation au même serveur, où ils peuvent être analysés en même temps.
13.1.12. Log Formatters Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Un formateur de journalisation (log formatter) est une propriété de configuration d'un gestionnaire de journalisation qui détermine l'apparence des messages de journalisation. Il s'agit d'un string qui utilise une syntaxe basée sur la classe
java.util.Formatter.
Ainsi, le string du formateur de journalisation de la configuration par défaut,
%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n , crée des messages de journalisation qui ressemblent à ceci :
15:53:26,546 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
15:53:26,546 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13.1.13. Syntaxe de Formateur de journaux Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
| Symbole | Description |
|---|---|
%c | La catégorie de l'événement de journalisation |
%p | Le niveau de saisie de la journalisation (info/déboggage/etc) |
%P | Le niveau localisé de la saisie de journalisation |
%d | Les date/heure (yyyy-MM-dd HH:mm:ss,SSS form) |
%r | L'heure relative (en millisecondes depuis l'initialisation de la journalisation) |
%z | Le réseau horaire |
%k | Une clé de ressource de journalisation (utilisée pour la localisation de messages de journalisation) |
%m | Le message de journalisation (avec trace d'exception) |
%s | Le simple message de journalisation (sans trace d'exception) |
%e | Exception stack trace (sans informations sur les modules étendus) |
%E | Exception stack trace (avec informations sur les modules étendus) |
%t | Le nom du thread en cours |
%n | Un caractère de nouvelle ligne |
%C | La classe du code appelant la méthode de journalisation (lente) |
%F | Le nom de fichier de la classe appelant la méthode de journalisation (lente) |
%l | L'emplacement d'origine du code appelant la méthode de journalisation (lente) |
%L | Le numéro de ligne du code appelant la méthode de journalisation (lente) |
%M | La méthode du code appelant la méthode de journalisation (lente) |
%x | Log4J Nested Diagnostic Context |
%X | Log4J Message Diagnostic Context |
%% | Un pourcentage (caractère d'échappement) |