В чем разница между logger.debug и logger.info?
Когда будет logger.debug напечатан?
В чем разница между logger.debug и logger.info?
Когда будет logger.debug напечатан?
Это будет зависеть от конфигурации ведения журнала. Значение по умолчанию будет зависеть от используемой платформы. Идея состоит в том, что позже, изменив параметр конфигурации с INFO на DEBUG, вы увидите массу дополнительных (или меньше, если наоборот) строк, напечатанных без перекомпиляции всего приложения.
Если вы думаете, какой из них использовать, то все сводится к размышлениям о том, что вы хотите увидеть на каком уровне. Для других уровней, например в Log4J, посмотрите API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html
Предлагаю вам ознакомиться со статьей под названием «Краткое введение в 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");
Trace уровень журнала.
- person RBT; 09.02.2017
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
В основном это зависит от того, как настроены ваши регистраторы. Обычно выходные данные отладки записываются во время разработки, но отключаются в производственной среде - или, возможно, выбранные категории отладки записываются при отладке определенной области.
Смысл наличия разных приоритетов состоит в том, чтобы позволить вам повышать / понижать уровень детализации для конкретного компонента достаточно детализированным способом - и нужно только изменить конфигурацию ведения журнала (а не код), чтобы увидеть разницу.
Это очень старый вопрос, но я не вижу здесь своего понимания, поэтому добавлю свои 2 цента:
Каждый уровень соответствует типу пользователя:
Это зависит от того, какой уровень вы выбрали в файле конфигурации log4j.
<Loggers>
<Root level="info">
...
Если ваш уровень - «информация» (по умолчанию), logger.debug(...) не будет отображаться в вашей консоли. Однако, если ваш уровень - «отладка», так и будет.
В зависимости от уровня критичности вашего кода вы должны использовать наиболее точный уровень из следующих:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
В чем разница между logger.debug и logger.info?
Это только некоторые уже определенные уровни по умолчанию. Вы можете определить свои собственные уровни, если хотите. Целью этих уровней является включение / отключение одного или нескольких из них без внесения каких-либо изменений в ваш код.
Когда будет напечатан logger.debug ??
Когда вы включили отладку или какой-либо более высокий уровень в вашей конфигурации.