Différence entre logger.info et enregistreur.débogage


Quelle est la différence entre logger.debug et logger.info ?

Quand logger.debug sera-t-il imprimé?

Author: Oliver Lloyd, 2010-02-26

8 answers

Cela dépendra de la configuration de journalisation. La valeur par défaut dépendra du framework utilisé. L'idée est que plus tard, en changeant un paramètre de configuration d'INFO à DEBUG, vous verrez une tonne de lignes plus (ou moins si l'inverse) imprimées sans recompiler toute l'application.

Si vous pensez lequel utiliser, cela revient à penser ce que vous voulez voir à quel niveau. Pour d'autres niveaux par exemple dans Log4J regardez l'API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html

 30
Author: toomasr, 2010-02-26 14:38:11

Je vous suggère de regarder l'article intitulé "Brève introduction à log4j". Il contient une brève explication des niveaux de log et montre comment ils peuvent être utilisés dans la pratique. L'idée de base des niveaux de journal est que vous voulez pouvoir configurer la quantité de détails que contiennent les journaux en fonction de la situation. Par exemple, si vous essayez de résoudre un problème, vous souhaitez que les journaux soient très verbeux. En production, il se peut que vous souhaitiez uniquement voir les avertissements et les erreurs.

Le le niveau de journal pour chaque composant de votre système est généralement contrôlé par un paramètre dans un fichier de configuration, il est donc facile à modifier. Votre code contiendrait diverses instructions de journalisation avec différents niveaux. Lorsque vous répondez à un Exception, vous pouvez appeler Logger.error. Si vous souhaitez imprimer la valeur d'une variable à un moment donné, vous pourriez l'appeler Logger.debug. Cette combinaison d'un niveau de journalisation configurable et d'instructions de journalisation dans votre programme vous permet un contrôle total sur la façon dont votre application se connectera de son activité.

Dans le cas de log4j au moins, l'ordre des niveaux de log est:

DEBUG < INFO < WARN < ERROR < FATAL

Voici un court exemple de cet article démontrant comment fonctionnent les niveaux de log.

   // get a logger instance named "com.foo"
   Logger logger = Logger.getLogger("com.foo");

   // Now set its level. Normally you do not need to set the
   // level of a logger programmatically. This is usually done
   // in configuration files.
   logger.setLevel(Level.INFO);

   Logger barlogger = Logger.getLogger("com.foo.Bar");

   // This request is enabled, because WARN >= INFO.
   logger.warn("Low fuel level.");

   // This request is disabled, because DEBUG < INFO.
   logger.debug("Starting search for nearest gas station.");

   // The logger instance barlogger, named "com.foo.Bar",
   // will inherit its level from the logger named
   // "com.foo" Thus, the following request is enabled
   // because INFO >= INFO.
   barlogger.info("Located nearest gas station.");

   // This request is disabled, because DEBUG < INFO.
   barlogger.debug("Exiting gas station search");
 121
Author: William Brendel, 2010-02-26 14:49:58

Juste une clarification sur l'ensemble de tous les niveaux possibles, qui sont:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
 13
Author: user1823890, 2014-12-05 15:21:13

Fondamentalement, cela dépend de la façon dont vos enregistreurs sont configurés. En règle générale, vous auriez une sortie de débogage écrite pendant le développement mais désactivée en production - ou éventuellement des catégories de débogage sélectionnées lors du débogage d'une zone particulière.

Le point d'avoir des priorités différentes est de vous permettre d'augmenter/réduire le niveau de détail sur un composant particulier d'une manière raisonnablement fine - et d'avoir seulement besoin de modifier la configuration de journalisation (plutôt que le code) pour voir la différence.

 9
Author: Jon Skeet, 2010-02-26 14:36:57
  1. INFO est utilisé pour enregistrer les informations que votre programme fonctionne comme prévu.
  2. DEBUG est utilisé pour trouver la raison dans le cas où votre programme ne fonctionne pas comme prévu ou une exception s'est produite. c'est dans l'intérêt de la part du développeur.
 3
Author: Santosh Srivastava, 2020-09-21 13:39:37

C'est une très vieille question, mais je ne vois pas ma compréhension, donc je vais ajouter mes 2 cents:

Chaque niveau correspond/correspond à un type d'utilisateur:

  • débogage: débogage manuel du développeur
  • trace: journalisation automatisée et traceur d'étape - pour la prise en charge du 3ème niveau
  • info : technicien / support niveau 1 /2
  • warn: erreur technicien / utilisateur: alerte automatisée / niveau de support 1
  • critiques/fatal : dépend de votre configuration locale IL
 2
Author: Mickey Perlstein, 2019-07-14 11:44:34

Quelle est la différence entre l'enregistreur.déboguer et logger.info?

Il ne s'agit que d'un niveau par défaut déjà défini. Vous pouvez définir vos propres niveaux si vous le souhaitez. Le but de ces niveaux est d'activer/désactiver un ou plusieurs d'entre eux, sans apporter de modification à votre code.

Quand enregistreur.le débogage sera imprimé ??

Lorsque vous avez activé le débogage ou tout niveau supérieur dans votre configuration.

 0
Author: craftsman, 2010-02-26 14:44:21

Cela dépend du niveau que vous avez sélectionné dans votre fichier de configuration log4j.

<Loggers>
        <Root level="info">
        ...

Si votre niveau est "info" (par défaut), logger.debug(...) ne sera pas imprimé dans votre console. Cependant, si votre niveau est "debug", il le sera.

En fonction du niveau de criticité de votre code, vous devez utiliser le niveau le plus précis parmi les suivants:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
 0
Author: Jack', 2017-11-15 13:06:17