web-dev-qa-db-fra.com

Différence entre logger.info et logger.debug

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

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

61
Senthilnathan

Cela dépendra de la configuration de la journalisation. La valeur par défaut dépend du framework utilisé. L'idée est que plus tard, en modifiant un paramètre de configuration d'INFO en DEBUG, vous verrez une tonne de lignes plus (ou moins, inversement) imprimées sans recompiler l'ensemble de 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

21
toomasr

Je vous suggère de regarder l'article intitulé "Brève introduction à log4j" . Il contient une courte explication des niveaux de journalisation et montre comment ils peuvent être utilisés dans la pratique. L'idée de base des niveaux de journal est que vous souhaitez pouvoir configurer le niveau de détail des 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 détaillés. En production, vous souhaiterez peut-être uniquement voir les avertissements et les erreurs.

Le niveau de journalisation de chaque composant de votre système est généralement contrôlé par un paramètre dans un fichier de configuration, ce qui permet de le modifier facilement. Votre code contiendrait diverses instructions de journalisation avec différents niveaux. Lorsque vous répondez à une Exception, vous pouvez appeler Logger.error. Si vous souhaitez imprimer la valeur d'une variable à un moment donné, vous pouvez appeler Logger.debug. Cette combinaison d'un niveau de journalisation configurable et d'instructions de journalisation dans votre programme vous permet de contrôler totalement la manière dont votre application enregistrera son activité.

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

DEBUG < INFO < WARN < ERROR < FATAL

Voici un court exemple de cet article illustrant le fonctionnement des niveaux de journalisation.

   // 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");
107
William Brendel

Juste une clarification sur l'ensemble de tous les niveaux possibles, à savoir:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
8
user1823890

En gros, cela dépend de la configuration de vos enregistreurs. En règle générale, la sortie de débogage est écrite pendant le développement mais désactivée en production - ou éventuellement les catégories de débogage selected sont écrites lors du débogage d'une zone particulière.

Le fait d’avoir des priorités différentes a pour but de vous permettre d’augmenter ou de réduire le niveau de détail d’un composant donné d’une manière raisonnablement fine - et n’a besoin que de modifier la configuration de la journalisation (plutôt que le code) pour voir la différence.

7
Jon Skeet

C'est une très vieille question, mais je ne vois pas ce que je comprends ici, donc je vais ajouter mes 2 centimes:

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

  • debug: developer - débogage manuel
  • trace: journalisation automatisée et pas à pas - pour un support de 3ème niveau
  • info: technicien/support niveau 1/2
  • avertir: erreur technicien/utilisateur: alerte automatique/niveau de support 1
  • critique/fatal: dépend de votre configuration - informatique locale
0
Mickey Perlstein

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é sur votre console . Cependant, si votre niveau est "debug", ce sera le cas.

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

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

Ce ne sont que certains niveaux par défaut déjà définis. 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 aucune modification de votre code.

Quand logger.debug sera imprimé?

Lorsque vous avez activé le débogage ou un niveau supérieur de votre configuration.

0
craftsman