Разница между logger.info и logger.debug - PullRequest
64 голосов
/ 26 февраля 2010

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

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

Ответы [ 6 ]

112 голосов
/ 26 февраля 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");
23 голосов
/ 26 февраля 2010

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

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

9 голосов
/ 05 декабря 2014

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

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
7 голосов
/ 26 февраля 2010

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

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

0 голосов
/ 15 ноября 2017

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

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

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

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

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
0 голосов
/ 26 февраля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...