Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

В случае log4j, по крайней мере, упорядочение уровней log:

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");

Ответ 3

Просто уточнение о множестве всех возможных уровней, которые:

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

Ответ 4

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

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

Ответ 5

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

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

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

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

Ответ 6

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

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

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

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

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

Ответ 7

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

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

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