Я хочу отказаться от использования строкового буфера и System.out.println в Java-агентах.
Я хочу использовать java.util.Logger.
Когда я вхожу в систему, используя
logger.info("logger started")
вывод в консоли сервера Domino
[0FDC:000D-1258] 06/07/2018 03:13:57 PM Agent Manager: Agent error: Jun 07, 2018 3:13:57 PM TransferDocsToServerNSF NotesMain INFO: logger started.
Обратите внимание, что платформа Domino добавила «Ошибка агента» перед выводом при использовании Level.INFO
Затем я попытался использовать .logp с Level.FINE, и никаких результатов не было.
logger.setLevel(Level.ALL); or logger.setLevel(Level.FINE);
logger.logp(Level.FINE,this.getClass().getSimpleName(),"main","logger started.");
вывод: Нет вывода. Все, что ниже Level.INFO, не печатается.
Как настроить таргетинг журнала Domino на отображение Level.FINE?
И что я могу сделать, чтобы INFO for Domino не считал все Level.INFO ошибками?
@Gatusko Да, этот пост помог мне понять, как работает ведение журнала.




После редактирования этого файла на сервере мне удалось распечатать журнал на разных уровнях:
(установка сервера) IBM / Domino / jvm / lib / logging.properties
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= FINEST
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = FINEST
Тестирование кода Java
logger = Logger.getLogger("com.xpagesbeast");
logger.setUseParentHandlers(false); //do not use the global logger (avoid two outputs per log)
создайте собственный обработчик, если он не существует, посмотрите здесь, вы можете создать более одного обработчика, который JVM будет отслеживать.
if (logger.getHandlers().length == 0){
System.out.println("Adding a new handler");
consoleHandler = new ConsoleHandler();
logger.addHandler(consoleHandler);
}
logger.getHandlers()[0].setLevel(Level.INFO);
logger.severe("test severe logging " + logger.getName());
logger.warning("test warning logging " + logger.getName());
logger.info("test info logging " + logger.getName());
logger.finer("test finer logging " + logger.getName());
logger.finest("test finest logging " + logger.getName());
Теперь я могу установить флаг отладки в базе данных или переменной среды и назначить уровень ведения журнала так подробно, как я хочу.
Например, если я хочу отладить приложение, я могу установить значение в базе данных, которое считывается приложением, которое определяет, какой уровень ведения журнала будет использовать этот обработчик.