Configuration du traçage et de la journalisation des fonctions dans Liberty

Vous pouvez utiliser le mécanisme de traçage et de journalisation de Liberty pour les fonctions Liberty. Le service de journalisation fait partie du noyau Liberty ; par conséquent, il n'est pas nécessaire de spécifier une fonction dans votre fichier server.xml pour pouvoir l'utiliser.

Pourquoi et quand exécuter cette tâche

Liberty fournit les interfaces SPI suivantes pour intégrer le traçage et la journalisation à votre code de fonction personnalisé :
com.ibm.websphere.ras
Le package com.ibm.websphere.ras fournit des classes pour la journalisation des messages et des enregistrements de trace, ainsi que des points d'extension. En général, le code de la fonction peut utiliser le package java.util.logging pour journaliser la trace et les messages, et pour contrôler la sortie via la configuration de journalisation Liberty ; toutefois, la capacité étendue du package WebSphere est parfois utile et les protections des données sensibles dans la trace sont légèrement plus efficaces lorsque la trace est désactivée.
com.ibm.websphere.ras.annotations
Le package com.ibm.websphere.ras.annotations fournit des annotations pouvant être utilisées avec des classes dans d'autres packages. Par exemple, une annotation @Sensitive peut être utilisée pour empêcher le contenu de la variable annotée d'apparaître dans la sortie de trace ou de message.
com.ibm.ws.ffdc
Le package com.ibm.ws.ffdc fournit des fonctions permettant d'écrire des enregistrements d'outil de diagnostic de premier niveau pour contribuer au débogage des exceptions inattendues.
com.ibm.wsspi.logging
Le package com.ibm.wsspi.logging fournit des points d'interception d'enregistrements de journal et ffdc.

La documentation d'API Java™ pour chaque interfaces SPI Liberty est détaillée dans la section Interfaces de programmation (Javadoc) du centre de documentation et est également disponible dans un fichier .zip distinct dans l'un des sous-répertoires javadoc du répertoire ${wlp.install.dir}/dev.

Procédure

Les étapes suivantes permettent de configurer un exemple de fonction Liberty appelé myfeature afin d'utiliser le mécanisme de traçage et de journalisation de Liberty :

  1. Spécifiez l'emplacement du fichier de messages pour la fonction myfeature ainsi que le nom du groupe qui est requis par la classe com.ibm.websphere.ras.TraceComponent.
    import java.util.ResourceBundle;
    
    public class myFeatureConstants {
    
        public static final String TR_RESOURCE_BUNDLE = 
            "com.mycompany.myFeature.internal.resources.FeatureMessages";
    
        public static final String TR_GROUP = "myFeature";
    
        public static final ResourceBundle messages = ResourceBundle.getBundle(TR_RESOURCE_BUNDLE);
    
    }
  2. Dans la classe d'implémentation du code de service de la fonction, appelez la méthode register() de la classe com.ibm.websphere.ras.TraceComponent pour enregistrer la classe d'implémentation avec le gestionnaire de trace fourni par Liberty. Ensuite, vous pouvez configurer le gestionnaire de trace afin d'effectuer le suivi des méthodes DS de la fonction.
    ...
    import com.ibm.websphere.ras.Tr;
    import com.ibm.websphere.ras.TraceComponent;
    
    
    public class myFeatureServiceImpl {
    
        private static final TraceComponent tc = Tr.register(myFeatureServiceImpl.class);
    
    
        protected void activate(ComponentContext cc, Map<String, Object> newProps) {
            if (tc.isDebugEnabled()) {
                Tr.debug(tc, "myFeatureComponentImpl activated"); }
    ...
  3. Utilisez l'annotation TraceOptions pour spécifier le nom du groupe de trace et le nom du bundle de messages.
    @TraceOptions(traceGroup = myFeatureConstants.TR_GROUP, messageBundle = 
        myFeatureConstants.TR_RESOURCE_BUNDLE)
    package com.mycompany.myFeature;
    
    import com.ibm.websphere.ras.annotation.TraceOptions;
    import com.mycompany.myfeature.internal.myFeatureConstants;
    ...

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_feat_logging.html