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

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

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


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


Ответы (8)


arrow_upward
34
arrow_downward

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

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

person toomasr    schedule 26.02.2010

arrow_upward
122
arrow_downward

Предлагаю вам ознакомиться со статьей под названием «Краткое введение в 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

arrow_upward
16
arrow_downward

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

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

arrow_upward
11
arrow_downward

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

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

person Jon Skeet    schedule 26.02.2010

arrow_upward
6
arrow_downward

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

arrow_upward
3
arrow_downward

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

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

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

arrow_upward
1
arrow_downward

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

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

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

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

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

arrow_upward
0
arrow_downward

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

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

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

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

person craftsman    schedule 26.02.2010