4.1 Liste des niveaux de journalisation

Vous avez écrit votre programme, l'avez téléchargé sur le serveur, puis vous commencez immédiatement à vous poser des questions :

  • Comment s'assurer que debug()la méthode ne fonctionne pas en travaillant dans production?
  • Il y a trop d'informations dans les journaux, souhaitez-vous ne laisser que des messages d'erreur ?
  • Comment voir un journal détaillé pour une partie de l'application ?

Bien sûr, les créateurs des bûches ont fait face à la même chose il y a des décennies. Je ne vous dirai pas comment ce problème a été résolu en langage C, mais en langage Java, il a été très bien résolu.

Le journal filtre les données avant d'écrire les informations dans le fichier . Vous pouvez très rapidement réduire/augmenter le détail du journal en définissant le niveau de journalisation. Ces niveaux sont décrits dans le tableau ci-dessous :

Niveau Note
1 TOUS Enregistrer tous les messages
2 TRACE Petit message lors du débogage
3 DÉBOGUER Messages importants pour le débogage
4 INFO Messages simples
5 AVERTIR N'écrivez que fatal, erreur et avertissement
6 ERREUR Écrire uniquement les erreurs et les erreurs fatales
7 FATAL Ecrire uniquement les erreurs fatales
8 DÉSACTIVÉ Ne pas écrire de messages dans le journal

Ces niveaux sont utilisés lors du filtrage des messages. Si vous définissez le niveau de journalisation sur WARN, tous les messages moins importants que WARNseront ignorés : TRACE, DEBUG, INFO. Si vous réglez le niveau de filtrage sur FATAL, alors même ERROR.

Deux autres niveaux de sévérité sont utilisés dans le filtrage - ceci OFF(ignorer tous les messages) et ALL- écrire tous les messages (ne rien ignorer).

4.2 Exemple de configuration de journal

Examinons un exemple simple de configuration de journal. Pour ce faire, nous avons besoin du fichier log4j.properties, qui peut être placé dans le dossier des ressources. Ajoutons-y le contenu suivant :

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

Ici, dans la toute première ligne, nous définissons le niveau de journalisation - WARN. Et cela signifie que les messages écrits dans l'enregistreur avec le statut DEBUGseront INFOignorés.

  • Précisez quel type d'appender nous utiliserons -ConsoleAppender
  • Spécifiez où nous allons écrire le journal -System.out
  • Nous définissons la classe qui contrôlera le format d'enregistrement -PatternLayout
  • Définir le format d'enregistrement pour tous les messages - date et heure

4.3 Erreurs de journalisation courantes

Et un autre point important - les erreurs courantes de journalisation. Il n'y a pas tellement d'options pour faire quelque chose, mais plusieurs erreurs courantes peuvent être identifiées :

  1. Trop de journalisation . Vous ne devez pas enregistrer chaque étape, ce qui peut théoriquement être important. Il existe une règle : les journaux ne peuvent pas charger les performances de plus de 10 % . Sinon, il y aura des problèmes de performances.
  2. Enregistrement de toutes les données dans un seul fichier . Cela rendra très difficile la lecture/écriture à un moment donné, sans compter qu'il existe des limites de taille de fichier sur certains systèmes.
  3. Utiliser les mauvais niveaux de journalisation . Chaque niveau de journalisation a des limites claires, et elles doivent être respectées. Si la limite est vague, vous pouvez vous mettre d'accord sur le niveau à utiliser.