Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

6.2.2. Création de loggers, de messages ou d'exceptions internationalisés

6.2.2.1. Créer des messages log internationalisés

Cette tâche vous montre comment utiliser JBoss Logging Tools pour créer des messages de journalisation internationalisés en créant des interfaces MessageLogger. Elle ne traite pas de toutes les caractéristiques optionnelles ou de la localisation des messages de journalisation.
Voir le guide de démarrage logging-tools pour trouver un exemple complet.

Prérequis :

  1. Vous devez déjà posséder un projet Maven en cours. Voir Section 6.2.6.1, « Configuration Maven JBoss Logging Tools ».
  2. Le projet doit avoir la configuration Maven qui convient pour JBoss Logging Tools.

Procédure 6.1. Créer un lot de messages log internationalisés

  1. Créer une interface de Message Logger

    Ajouter une interface Java à votre projet pour contenir les définitions de messages log. Définir l'interface de façon descriptive pour les messages log qui seront définis à l'intérieur.
    L'interface de messages log ont les prérequis suivants :
    • Doit être annotée par @org.jboss.logging.MessageLogger.
    • Doit étendre org.jboss.logging.BasicLogger.
    • L'interface doit définir un champ qui est un Logger typed qui impléemente cette interface. Procédez par la méthode getMessageLogger() de org.jboss.logging.Logger.
    package com.company.accounts.loggers;
    
    import org.jboss.logging.BasicLogger;
    import org.jboss.logging.Logger;
    import org.jboss.logging.MessageLogger;
    
    @MessageLogger(projectCode="")
    interface AccountsLogger extends BasicLogger
    {
       AccountsLogger LOGGER = Logger.getMessageLogger(
             AccountsLogger.class,
             AccountsLogger.class.getPackage().getName() );
    }
  2. Ajouter les définitions de méthode

    Ajouter une définition de méthode à l'interface de chaque message log. Nommez chaque méthode descriptivement par rapport au message log qu'elle représente.
    Chaque méthode a les prérequis suivants :
    • La méthode doit renvoyer void.
    • La méthode doit être annotée par @org.jboss.logging.LogMessage.
    • La méthode doit être annotée par @org.jboss.logging.Message.
    • L'attribut de @org.jboss.logging.Message contient le message log par défaut. Il s'agit du message qui est utilisé s'il n'y a pas de traduction.
    @LogMessage
    @Message(value = "Customer query failed, Database not available.")
    void customerQueryFailDBClosed();
    Le niveau de journalisation par défaut est INFO.
  3. Invoquer les méthodes

    Ajouter les appels aux méthodes d'interface dans votre code là où les messages doivent être journalisés. Il n'est pas utile de créer des implémentations des interfaces, le processeur d'annotations le fait pour vous quand le projet est compilé.
    AccountsLogger.LOGGER.customerQueryFailDBClosed();
    Les loggers personnalisés sont des sous-classes de BasicLogger, donc les méthodes de journalisation de BasicLogger (debug(), error() etc) peuvent également être utilisées. Il n'est pas utile de créer d'autres loggers pour enregistrer les messages non internationalisés.
    AccountsLogger.LOGGER.error("Invalid query syntax.");
RÉSULTAT: le projet supporte maintenant un ou plusieurs loggers internationalisés qui peuvent maintenant être localisés.