logo

Niveaux de journalisation Log4J

Les niveaux de journalisation sont utilisés pour catégoriser les entrées dans votre fichier journal. Mais ils les classent d’une manière très spécifique, c’est-à-dire par urgence. Le niveau vous permet de séparer les types d'informations suivants :

  • Vous pouvez filtrer vos fichiers journaux pendant la recherche.
  • Vous pouvez gérer la quantité d'informations que vous enregistrez.

La quantité et le type d'informations fournies dans le système et les journaux d'événements sont contrôlés par les paramètres de niveau log4j dans le fichier de configuration. Chaque message de journal est préfixé par le niveau du message.

Les niveaux de journalisation sont une instance de org.apache.log4j.Level classe.

Log4j a les niveaux de journalisation suivants :

Niveau de journalisation Description
TOUS Ce niveau active tous les niveaux de journalisation. Il inclut les niveaux de journalisation personnalisés que vous avez définis. Une fois celui-ci configuré et les niveaux ne sont pas du tout pris en compte, alors tous les appenders commenceront à verser les événements du journal dans les fichiers journaux.
DÉBOGUER Le débogage est beaucoup utilisé pour déboguer l’application au moment du développement. Chaque message de journal apparaîtra dans les fichiers journaux une fois ce niveau défini. Il appartient essentiellement aux développeurs.
INFO Le niveau de journalisation INFO est utilisé pour enregistrer des messages sur le fonctionnement de routine de l'application. En temps réel, les administrateurs système surveillent les journaux d'informations pour s'assurer de ce qui se passe actuellement sur le système et s'il y a un problème dans le flux normal.
AVERTIR Le niveau de journalisation WARN est utilisé pour indiquer que vous pourriez rencontrer un problème et que vous avez détecté une situation inhabituelle. Peut-être avez-vous demandé à appeler un service et celui-ci a échoué plusieurs fois avant de vous connecter lors d'une nouvelle tentative automatique. C'est inattendu et inhabituel, mais aucun préjudice réel n'a été causé et on ne sait pas si le problème persistera ou se reproduira. Quelqu'un devrait enquêter sur les avertissements.
ERREUR Le niveau de journalisation ERREUR est utilisé pour indiquer un problème grave sur lequel vous devez enquêter immédiatement. Pas aussi grave que FATAL, mais ça reste un problème. Cela signifie simplement que votre application a rencontré un état vraiment indésirable. Par exemple, entrée formatée inattendue, indisponibilité de la base de données.
FATAL Le niveau de log FATAL, comme ERROR, désigne un problème. Mais contrairement à ERROR, il désigne un événement d'erreur très grave. Vous ne considérerez pas beaucoup leur présence un jour normal, mais une fois qu’ils apparaissent, cela signale une très mauvaise nouvelle, voire l’application de la mort.
DÉSACTIVÉ Il s'agit du rang le plus élevé possible et vise à désactiver la journalisation.
TRACER Cela a été récemment introduit dans la version 1.2 et inclut plus d'informations sur les journaux de niveau de débogage.

Comment définir les niveaux de journalisation ?

Définir le niveau de journalisation dans log4j.properties

 log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender 

Définir le niveau de journalisation dans log4j.xml

 

Comment fonctionnent les niveaux de journalisation ?

Le fonctionnement des niveaux de journalisation est en réalité très simple. Pendant l'exécution, le code de l'application créera des requêtes de journalisation, qui auront un niveau. Dans le même temps, la structure de journalisation a un niveau de journalisation configuré, qui fait office de seuil. Si le niveau de demande est au niveau configuré ou à un niveau supérieur, il est enregistré sur la cible configurée. Sinon, c'est refusé. C'est aussi simple que ça.

Considérons cela comme l'ordre de classement suivant pour les niveaux :

 ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>

Programme Java :

 import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } 

Maintenant, compilez et exécutez le programme ci-dessus et nous obtiendrons le résultat suivant dans le fichier c:/usr/home/log4j/log.out :

 Warn Message! Error Message! Fatal Message!