Utiliser un logger en Java

Rashmi Patidar 12 octobre 2023
Utiliser un logger en Java

Dans le langage de programmation Java, Logging est une API qui permet aux utilisateurs de retracer l’erreur générée à partir des classes spécifiques. Un logger contribue au mécanisme de journalisation en temps réel en ajoutant des horodatages et les points de terminaison où il est rempli. L’API aide à maintenir la trace des événements en tant qu’enregistrement d’un journal. Les enregistrements aident à localiser la cause première des problèmes qui se sont produits et à régénérer le même événement ultérieurement.

Cet article vous montre une méthode pour mieux utiliser les journaux Java.

Les fonctions d’un logger en Java

Le logger et sa fonction sont illustrés dans le programme ci-dessous.

package log_file;

import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

public class AddLoggerInFile {
  public static void main(String[] args) {
    Logger logger = Logger.getLogger("MyLog");
    FileHandler fileHandler;
    try {
      fileHandler = new FileHandler("src/main/resources/MyLogFile.txt");
      logger.addHandler(fileHandler);
      SimpleFormatter simpleFormatter = new SimpleFormatter();
      fileHandler.setFormatter(simpleFormatter);
      logger.info("Log to test");

    } catch (SecurityException e) {
      logger.info("Exception:" + e.getMessage());
      e.printStackTrace();
    } catch (IOException e) {
      logger.info("IO Exception:" + e.getMessage());
      e.printStackTrace();
    }
    logger.info("Hi In the main class");
  }
}

Dans le bloc de code ci-dessus, un logger est initialement instancié.

La classe est présente dans le package java.util.logging. Le getLogger est une méthode statique présente dans la classe Logger qui crée un logger s’il n’est pas présent dans le système avec le nom donné. La fonction else renvoie l’instance de logger existante si elle est déjà présente.

La fonction lève NullPointerException si le nom donné est la valeur nulle. Une fois que l’instance de consignateur est instanciée, une instance de gestionnaire de fichiers est créée.

La classe FileHandler est présente dans le package java.util.logging et est spécifiquement conçue et configurée pour gérer le journal imprimé à l’aide de l’instance logger. Le constructeur FileHandler initialise le gestionnaire pour écrire les informations dans le nom de fichier donné. Le constructeur prend le nom du fichier de sortie en paramètre.

Dans le code ci-dessus, un chemin relatif est fourni avec le nom du fichier. La taille n’est pas définie dans le fichier, car elle peut être étendue jusqu’à la limite des journaux. Le constructeur lève IOException lorsque le compilateur rencontre un problème lors de l’ouverture des fichiers. Il lève SecurityException si un gestionnaire de sécurité n’a pas LoggingPermission et IllegalArgumentException si le modèle est une chaîne vide.

La méthode addHandler mappe un gestionnaire de fichiers pour recevoir les messages de journalisation dans le fichier. La fonction est de type retour void, car elle ne retourne aucune valeur. Au lieu de cela, il consomme uniquement les journaux et les événements. Il lève SecurityException si un gestionnaire de sécurité n’a pas suffisamment d’autorisations de journalisation.

L’instance SimpleFormatter est lancée ; la classe est également présente dans le package java.util.logging. Le formateur donne le privilège de formater automatiquement les logs à l’aide de la propriété logging.SimpleFormatter.format. Cette propriété permet aux messages de journal d’être dans un format défini et, par conséquent, de maintenir l’uniformité.

Le setFormatter est une fonction qui définit un formateur sur l’instance du logger. L’info est une fonction présente dans la classe Logger pour imprimer les messages de log info dans le fichier. Il peut y avoir plusieurs niveaux de logs présents dans la classe Niveau. En fonction de l’utilisation, nous pouvons utiliser les logs INFO, DEBUG, FINE, CONFIG et SEVERE.

Les niveaux de logs sont les détails de journalisation qui définissent la gravité du journal du programme. Les niveaux ont un nombre défini et une signification spécifiée. Par exemple, SEVERE a une valeur de journal de 1000, et cela indique la défaillance du système et doit être pris en charge immédiatement.

La gravité se produit lorsqu’une panne de réseau ou une perte de connectivité à la base de données. De même, le niveau WARNING contient une valeur de 900 et indique le risque potentiel dans le système.

Vous trouverez ci-dessous la sortie qui est renseignée dans la sortie de la console standard et le fichier MyLogFile.txt.

Production:

Jul 04, 2021 12:05:29 AM log_file.AddLoggerInFile main
INFO: Log to test
Jul 04, 2021 12:05:29 AM log_file.AddLoggerInFile main
INFO: Hi In the main class
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn