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 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