Chapitre 14. Le sous-système de journalisation
14.1. Introduction
14.1.1. Logging (Journalisation)
14.1.2. Frameworks de journalisations d'applications pris en charge par JBoss LogManager
- JBoss Logging - inclus avec JBoss EAP 6
- Apache Commons Logging - http://commons.apache.org/logging/
- Simple Logging Facade 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
14.1.3. Configuration du journal d'amorçage
logging.properties est disponible quand le serveur démarre, ces propriétés de configuration seront utilisées pour enregistrer des événements qui ont eu lieu avant que le sous-système de journalisation ne soit initialisé. Ensuite, le sous-système de journalisation s'occupe des enregistremetns d'événements.
logging par le CLI, ou en éditant manuellement le fichier de configuration du serveur, il met à jour le fichier logging.properties.
logging.properties est manquant dans l'installation, tous les messages de journalisation qui apparaissent normalement au boot time avant que le sous-système de journalisation ne soit activé, sont perdus. Une fois que le sous-système est initialisé, les messages apparaitront à nouveau sur le journal.
Avertissement
logging.properties directement à moins que vous n'ayiez un sérieux problème à démarrer le serveur et que vous ayiez besoin d'enregistrements supplémentaires de l'hôte ou du contrôleur de processus.
14.1.4. Journalisation de Garbage Collection
standalone (autonome) sur toutes les configurations prises en charge sauf JDK d'IBM.
$EAP_HOME/standalone/log/gc.log.digit. La rotation de la journalisation est activée, avec un nombre de fichiers de journalisation ne devant pas dépasser 5, et une taille de 3 MiB maximum par fichier.
14.1.5. Dépendances d'API de journalisation implicites
add-logging-api-dependencies qui contrôle la possibilité pour le conteneur d'ajouter des dépendances d'API de journalisation implicites aux déploiements. Par défaut, cet attribut est défini à true, ce qui signifie que toutes les dépendances d'API de journalisation implicites doivent être ajoutées aux déploiements. Si défini sur false, les dépendances d'API de journalisation se seront pas ajoutées.
add-logging-api-dependencies peut être configuré par l'interface CLI. Par exemple :
/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)14.1.6. Emplacements de fichiers de journalisation par défaut
Tableau 14.1. Fichier de journalisation par défaut d'un serveur autonome
| Fichier journal | Description |
|---|---|
EAP_HOME/standalone/log/server.log |
Journal du serveur. Contient les messages de journalisation de serveur, dont les messages de démarrage de serveur.
|
EAP_HOME/standalone/log/gc.log |
Journalisation de Garbage collection. Contient des informations sur tous les nettoyagess de mémoire.
|
Tableau 14.2. Fichiers de journalisation par défaut d'un domaine géré
| 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.
|
14.1.7. Filtre les expressions de journalisation
Note
filter-spec spécifié pour le root logger n'est pas hérité par d'autres handlers. À la place, un filter-spec doit être spécifié par handler.
Tableau 14.3. Filtre les expressions de journalisation
|
Type de filtre
expression
| Description | Paramètres |
|---|---|---|
|
Accepter
accept
| Accepter tous les messages de journalisation | accept
|
|
Refuser
deny
| Refuser tous les messages de journalisation | deny
|
|
Not
not[filter expression]
| Renvoie la valeur inversée de l'expression du filtre |
Prend une expression de filtre unique comme paramètre
not(match("JBAS"))
|
|
Tout
all[filter expression]
| Renvoie la valeur concaténée à partir de multiples expressions de filtre. |
Prends plusieurs expressions de filtre séparées par des virgules
all(match("JBAS"),match("WELD"))
|
|
Tous
any[filter expression]
| Renvoie une valeur à partir de multiples expressions de filtre. |
Prends plusieurs expressions de filtre séparées par des virgules
any(match("JBAS"),match("WELD"))
|
|
Changement de niveau
levelChange[level]
| Modifie l'enregistrement de journalisation avec le niveau indiqué |
Prend un niveau basé chaîne unique comme argument
levelChange("WARN")
|
|
Niveaux
levels[levels]
| Filtre les messages de journalisation avec un niveau apparaissant sur la liste des niveaux |
Prend plusieurs niveaux basés chaînes séparées par des virgules en tant qu'arguments
levels("DEBUG","INFO","WARN","ERROR")
|
|
Gamme de niveaux
levelRange[minLevel,maxLevel]
| Filtre les messages de journalisation dans la gamme de niveaux spécifiée. |
L'expression de filtre utilise
[ pour indiquer un niveau inclusif minimum et ] pour indiquer un niveau inclusif maximum. Sinon, vous pouvez utiliser ( ou ) respectivement pour indiquer une exclusivité. Le premier argument de l'expression est le niveau minimum autorisé, le deuxième argument est le niveau maximum autorisé.
Voici des exemples ci-dessous.
|
Match (match["pattern"]) | Filtre basé sur une expression régulière. Le message non formaté est utilisé à l'encontre du modèle spécifié dans l'expression. |
Prend une expression régulière comme argument
match("JBAS\d+")
|
Substitute (substitute["pattern","replacement value"]) | Filtre qui remplace la première correspondance au modèle par une valeur de remplacement |
Le premier argument de l'expression est le modèle, le deuxième est le texte de remplacement.
substitute("JBAS","EAP")
|
Remplacer tout (substituteAll["pattern","replacement value"]) | Un filtre qui remplace toutes les correspondances du modèle avec la valeur de remplacement. |
Le premier argument de l'expression est le modèle, le deuxième est le texte de remplacement.
substituteAll("JBAS","EAP")
|
14.1.8. Niveaux de journalisation
TRACE, DEBOG, INFO, ATTENTION, ERREUR et FATAL.
ATTENTION enregistrera uniquement les messages des niveaux ATTENTION, ERREUR et FATAL.
14.1.9. Niveaux de journalisation pris en charge
Tableau 14.4. Niveaux de journalisation pris en charge
| 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.
|
| DEBOG | 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.
|
14.1.10. Catégories de journalisation
14.1.11. Root Logger
server.log. On prénomme parfois ce fichier : journal du serveur (server log).
14.1.12. Gestionnaires de journaux
Console, File, Periodic, Size, Async et Custom.
14.1.13. Types de gestionnaires de journalisation
- Console
- Les gestionnaires de journaux de console écrivent des messages de 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éé 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.
14.1.14. Log Formatters
java.util.Formatter.
%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
14.1.15. Syntaxe de Formateur de journaux
Tableau 14.5. Syntaxe de Formateur de journaux
| 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 | Suivi de la pile d'exceptions (sans informations sur les modules étendus) |
%E | Suivi de la pile d'exceptions (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 | Contexte de diagnostique intégré |
%X | Contexte de diagnostique du message |
%% | Un pourcentage (caractère d'échappement) |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.