Где делает java.util.logging. Хранилище регистратора их журнал

Это могло бы быть глупым вопросом, но я немного потерян с Регистратором Java

private static Logger logger = Logger.getLogger("order.web.OrderManager");
logger.info("Removed order " + id + ".");

Где я вижу журнал? Также эта кавычка от java.util.logging. Библиотека Logger:

На каждом вызове входа Регистратор первоначально выполняет дешевую проверку уровня запроса (например, Серьезный или ПРЕКРАСНЫЙ) против эффективного уровня журнала регистратора. Если уровень запроса ниже, чем уровень журнала, регистрирующийся вызов сразу возвращается.
После передачи этого начального (дешевого) теста Регистратор выделит LogRecord для описания регистрирующегося сообщения. Это затем назовет Фильтр (если есть), чтобы сделать, более подробное начинает работу, должна ли запись быть опубликована. Если это передаст его, то затем опубликует LogRecord к его Обработчикам выводов.'

Делает это означает это, если я имею 3 request level журнал:

logger.log(Level.FINE, "Something");
logger.log(Level.WARNING, "Something");
logger.log(Level.SEVERE, "Something");

И мой log level СЕРЬЕЗНО, я вижу все три журнала, и если мой log level ПРЕДУПРЕЖДАЕТ, затем я не вижу СЕРЬЕЗНЫЙ журнал, который корректен? И как я устанавливаю log level?

40
задан Clashsoft 17 May 2015 в 20:00
поделиться

3 ответа

Где я увижу журнал?

В файле журнала или стандартном выводе, в зависимости от фактической конфигурации обработчика журнала. Это можно задать через файл свойств или непосредственно через API протоколирования.

Означает ли это, что если у меня есть журнал 3 уровня запросов...

SEVERE является наиболее важным (наивысший приоритет) и FINE является наименее важным типом сообщения из 3, показанных в вашем примере. Таким образом, если уровень журнала SEVERE, в журнал попадают только сообщения SEVERE. Если уровень FINE, в журнал попадают все три сообщения.

Это очень полезно, когда в реальной производственной среде вы хотите регистрировать только ошибки и, возможно, предупреждения (которые - надеюсь - довольно редки, но вы хотите знать о них), поэтому вы можете установить уровень журнала на WARNING. Однако в среде разработки, например, при отладке проблемы, вы хотите видеть всю информацию в журналах, даже если это создает большой объем данных журнала и замедляет работу приложения. Поэтому вы устанавливаете уровень журнала на FINE или FINEST.

Вот хорошее введение в логирование Java.

Обновление: простой пример с вышеуказанной страницы для настройки регистратора на запись в файл на уровне FINEST:

Handler fh = new FileHandler("%t/wombat.log");
Logger.getLogger("").addHandler(fh);
Logger.getLogger("com.wombat").setLevel(Level.FINEST);

Для записи в консоль замените FileHandler выше на ConsoleHandler:

Handler ch = new ConsoleHandler();
Logger.getLogger("").addHandler(ch);

Однако это всего лишь пример - в реальном приложении предпочтительнее настраивать ведение журнала через файл свойств конфигурации.

28
ответ дан 27 November 2019 в 01:56
поделиться

Обзор Java TM Logging Overview довольно интересен, чтобы ответить на все ваши вопросы о Java Logger :

logging overview

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

Уровень журнала :

Каждое сообщение журнала имеет связанный уровень журнала. Уровень дает приблизительное представление о важности и срочности сообщения журнала. Объекты уровня журнала инкапсулируют целочисленное значение, причем более высокие значения указывают на более высокий приоритет.

Класс Уровень определяет семь стандартных уровней журнала, в диапазоне от FINEST (самый низкий приоритет, с самым низким значением) до SEVERE ( наивысший приоритет, с наивысшим значением ).

5
ответ дан 27 November 2019 в 01:56
поделиться

Куда он идет, зависит от вашей конфигурации. Подробности об этом читайте в документации по API. Уровень журнала полностью противоположен тому, что вы сказали. Если у вас есть конфигурация FINE , все, что является FINE, WARNING, SEVERE , будет отображаться, но если у вас установлено значение SEVERE , то только они будут появиться.

Как правило, вы должны использовать FINE при отладке и переключаться на SEVERE в производственной среде.

1
ответ дан 27 November 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: