В чем разница между 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, по крайней мере, упорядочение уровней 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");
Просто уточнение о множестве всех возможных уровней, которые:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
В основном это зависит от того, как настроены ваши регистраторы. Как правило, у вас будет отладочный вывод, выписанный во время разработки, но отключенный в процессе производства - или, возможно, вы выбрали категории отладки при отладке определенной области.
Точка, в которой есть разные приоритеты, состоит в том, чтобы позволить вам повысить или уменьшить уровень детализации на конкретном компоненте достаточно разумно, и только нужно изменить конфигурацию ведения журнала (а не код), чтобы увидеть разница.
В чем разница между logger.debug и logger.info?
Это только определенный уровень по умолчанию. Вы можете определить свои уровни, если хотите. Целью этих уровней является включение/отключение одного или нескольких из них без внесения каких-либо изменений в ваш код.
Когда будет напечатан logger.debug
Если вы включили отладку или какой-либо более высокий уровень в своей конфигурации.
Это зависит от того, какой уровень вы выбрали в конфигурационном файле log4j.
<Loggers>
<Root level="info">
...
Если ваш уровень "информация" (по умолчанию), logger.debug(...)
не будет напечатан в консоли.
Однако, если ваш уровень "отлаживается", он будет.
В зависимости от уровня критичности вашего кода вы должны использовать наиболее точный уровень среди следующих:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
Это очень старый вопрос, но я не вижу своего понимания здесь, поэтому я добавлю свои 2 цента:
Каждый уровень соответствует/соответствует типу пользователя: