Где находится java.утиль.лесозаготовительный.Logger хранит их журнал
это может быть глупый вопрос, но я немного потерялся с Java Logger
private static Logger logger = Logger.getLogger("order.web.OrderManager");
logger.info("Removed order " + id + ".");
где я вижу журнал? Также эта цитата из java.утиль.лесозаготовительный.Библиотека регистратора:
при каждом вызове журнала регистратор первоначально выполняет дешевую проверку уровня запроса (например, строгий или штраф) против эффективного уровня журнала регистратора. Если уровень запроса ниже уровня журнала, вызов журнала возвращается немедленно.
Пройдя этот первоначальный (дешевый) тест, регистратор выделит LogRecord для описания сообщения журнала. Затем он вызовет фильтр (если он присутствует), чтобы более подробно проверить, должна ли запись быть опубликована. Если это пройдет, он опубликует LogRecord в своих выходных обработчиках.`
означает ли это, что если у меня есть 3 request level
log:
logger.log(Level.FINE, "Something");
logger.log(Level.WARNING, "Something");
logger.log(Level.SEVERE, "Something");
и меня log level
сурово, я вижу все три бревна, и если мой log level
это предупреждение, тогда я не вижу серьезного журнала, это правильно? И как мне установить log level
?
3 ответов
где я вижу журнал?
в файле журнала или стандартном выходе, в зависимости от фактической конфигурации обработчика журнала. Это можно установить через файл свойств или непосредственно через API ведения журнала.
означает ли это, что если у меня есть 3 журнала уровня запроса...
SEVERE
является наиболее важным (наивысший приоритет) и FINE
является наименее важным типом сообщения из 3, показанных в вашем примере. Поэтому, если ваш уровень журнала SEVERE
, только SEVERE
сообщения регистрируются. Если уровень FINE
, все 3 сообщения регистрируются.
это очень полезно, когда в реальной производственной среде вы можете регистрировать только ошибки и, возможно, предупреждения (которые, надеюсь, довольно редки, но вы хотите знать о них), поэтому вы можете установить уровень журнала в 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);
это всего лишь пример, в реальном приложении это предпочтительно настроить ведение журнала через файл свойств config.
на обзор ведения журнала Java TM довольно интересно ответить на все ваши вопросы на Java Logger
:
вы увидите свой журнал, где Handler
(s), связанные с вашим Logger
будет генерировать указанный журнал (в Console
или Stream
...).
Конфигурация по умолчанию устанавливает один обработчик на корневом регистраторе для отправки вывода на консоль.
Уровень Журнала:
каждое сообщение журнала имеет связанный уровень журнала. Уровень дает приблизительное руководство по важности и срочности сообщения журнала. Объекты уровня журнала инкапсулируют целочисленное значение с более высокими значениями, указывающими на более высокие приоритеты.
The
Level
класс определяет семь стандартных уровней журнала, начиная отFINEST
(самый низкий приоритет, с самым низким значением) доSEVERE
(самый высокий приоритет, с наибольшим значением).
, куда он идет, зависит от конфигурации. Подробности об этом приведены в документах API. Уровень журнала-это полная противоположность тому, что вы сказали. Если у вас есть конфигурация FINE
, все FINE, WARNING, SEVERE
появится, но если у вас установлено значение SEVERE
тогда всплывут только те.
В общем, вы должны использовать FINE
при отладке и переключении на SEVERE
, когда он находится в рабочей среде.