Разница между logger.info и logger.debug

В чем разница между logger.debug и logger.info?

Когда будет logger.debug напечатан?


person Senthilnathan    schedule 26.02.2010    source источник


Ответы (8)


Это будет зависеть от конфигурации ведения журнала. Значение по умолчанию будет зависеть от используемой платформы. Идея состоит в том, что позже, изменив параметр конфигурации с INFO на DEBUG, вы увидите массу дополнительных (или меньше, если наоборот) строк, напечатанных без перекомпиляции всего приложения.

Если вы думаете, какой из них использовать, то все сводится к размышлениям о том, что вы хотите увидеть на каком уровне. Для других уровней, например в Log4J, посмотрите API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html

person toomasr    schedule 26.02.2010

Предлагаю вам ознакомиться со статьей под названием «Краткое введение в log4j». Он содержит краткое объяснение уровней журнала и демонстрирует, как их можно использовать на практике. Основная идея уровней журналов состоит в том, что вы хотите иметь возможность настраивать степень детализации журналов в зависимости от ситуации. Например, если вы пытаетесь устранить проблему, вам нужно, чтобы журналы были очень подробными. В производственной среде вы можете захотеть видеть только предупреждения и ошибки.

Уровень журнала для каждого компонента вашей системы обычно контролируется с помощью параметра в файле конфигурации, поэтому его легко изменить. Ваш код будет содержать различные операторы ведения журнала с разными уровнями. Отвечая на Exception, вы можете позвонить Logger.error. Если вы хотите напечатать значение переменной в любой момент, вы можете вызвать Logger.debug. Эта комбинация настраиваемого уровня ведения журнала и операторов ведения журнала в вашей программе позволяет вам полностью контролировать, как ваше приложение будет регистрировать свою активность.

По крайней мере, в случае log4j порядок уровней журнала следующий:

DEBUG < INFO < WARN < ERROR < FATAL

Вот небольшой пример из этой статьи, демонстрирующий, как работают уровни журнала.

   // 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");
person William Brendel    schedule 26.02.2010
comment
@momomo, возможно, вы захотите проверить этот ответ, чтобы узнать, что такое Trace уровень журнала. - person RBT; 09.02.2017
comment
Ваш пример If you want to print the value of a variable at any given point, you might call Logger.debug помог мне прояснить путаницу между Debug и Trace уровнем. Спасибо! - person RBT; 09.02.2017

Просто пояснение о наборе всех возможных уровней, а именно:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
person user1823890    schedule 05.12.2014

В основном это зависит от того, как настроены ваши регистраторы. Обычно выходные данные отладки записываются во время разработки, но отключаются в производственной среде - или, возможно, выбранные категории отладки записываются при отладке определенной области.

Смысл наличия разных приоритетов состоит в том, чтобы позволить вам повышать / понижать уровень детализации для конкретного компонента достаточно детализированным способом - и нужно только изменить конфигурацию ведения журнала (а не код), чтобы увидеть разницу.

person Jon Skeet    schedule 26.02.2010

  1. INFO используется для регистрации информации, которую ваша программа работает должным образом.
  2. DEBUG используется для поиска причины, если ваша программа не работает должным образом или возникло исключение. это в интересах разработчика.
person Santosh Srivastava    schedule 21.09.2020

Это очень старый вопрос, но я не вижу здесь своего понимания, поэтому добавлю свои 2 цента:

Каждый уровень соответствует типу пользователя:

  • отладка: разработчик - ручная отладка
  • трассировка: автоматическое ведение журнала и отслеживание шагов - для поддержки 3-го уровня
  • информация: техник / уровень поддержки 1/2
  • предупреждение: технический специалист / ошибка пользователя: автоматическое предупреждение / уровень поддержки 1
  • критический / фатальный: зависит от вашей настройки - местный ИТ-отдел
person Mickey Perlstein    schedule 14.07.2019

Это зависит от того, какой уровень вы выбрали в файле конфигурации log4j.

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

Если ваш уровень - «информация» (по умолчанию), logger.debug(...) не будет отображаться в вашей консоли. Однако, если ваш уровень - «отладка», так и будет.

В зависимости от уровня критичности вашего кода вы должны использовать наиболее точный уровень из следующих:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
person Jack'    schedule 15.11.2017

В чем разница между logger.debug и logger.info?

Это только некоторые уже определенные уровни по умолчанию. Вы можете определить свои собственные уровни, если хотите. Целью этих уровней является включение / отключение одного или нескольких из них без внесения каких-либо изменений в ваш код.

Когда будет напечатан logger.debug ??

Когда вы включили отладку или какой-либо более высокий уровень в вашей конфигурации.

person craftsman    schedule 26.02.2010