Настройка java.util.logging
От: f95.2  
Дата: 11.05.20 12:55
Оценка:
Добрый день.
Пытаюсь прикрутить логирование к своему учебному проекту, но не могу понять идеологию логирования в джаве.

Я как-то привык, что вот есть программа, возможно есть ее конфигурационный файл.
Программа при запуске читает опции командной строки и данные конфигурационного файла,
и зависимости от них настраивает себя, в т.ч. уровень и формат логирования.
(оставим за скобками случаи, когда уровень логирования надо менять без остановки программы).

В JUL же всё как-то странно.
1. Везде пишут, что некошерно менять уровень логирования в коде программы. Почему?
2. Предлагают настройки логгера писать в специальный файл-ресурс, который распространяется в jar.
Получается, чтобы изменить уровень логирования, нужно залезть внутрь jar и фактически изменить программу.
Ну, у меня тут аналогия с исполняемым файлом, который тоже может содержать ресурсы, изменение которых возможно,
но это необычная и нетривиальная операция.

Также пишут про возможность задать специальный параметр jvm при запуске этой самой jvm, но,
во-первых, название у параметра длинное и некрасивое,
во-вторых, если нужно поменять несколько настроек, то придется передать ооочень длинную строку параметров,
а в третьих, могут ведь быть проблемы, если в одной jvm исполняется несколько программ.
Или так не бывает ? (я краем уха слышал про сервера приложений, но еще не разбирался, что это такое).

Всё действительно так плохо, или я не понимаю чего-то?
Re: Настройка java.util.logging
От: GarryIV  
Дата: 11.05.20 13:35
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Я как-то привык, что вот есть программа, возможно есть ее конфигурационный файл.

F2>Программа при запуске читает опции командной строки и данные конфигурационного файла,
F2>и зависимости от них настраивает себя, в т.ч. уровень и формат логирования.
F2>(оставим за скобками случаи, когда уровень логирования надо менять без остановки программы).
Все аналогично.

F2>В JUL же всё как-то странно.

JUL на помойку. Sl4j + Logback бери.

F2>1. Везде пишут, что некошерно менять уровень логирования в коде программы. Почему?

Как хочешь так и меняй.

F2>2. Предлагают настройки логгера писать в специальный файл-ресурс, который распространяется в jar.

Так часто делают, но это не значит что только так и надо.

F2>Получается, чтобы изменить уровень логирования, нужно залезть внутрь jar и фактически изменить программу.

F2>Ну, у меня тут аналогия с исполняемым файлом, который тоже может содержать ресурсы, изменение которых возможно,
F2>но это необычная и нетривиальная операция.
Нет, jar как и exe/dll менять не надо.

F2>Также пишут про возможность задать специальный параметр jvm при запуске этой самой jvm, но,

F2>во-первых, название у параметра длинное и некрасивое,
F2>во-вторых, если нужно поменять несколько настроек, то придется передать ооочень длинную строку параметров,
Внешний конфиг файл вплне рабочее решение. В jar пакуешь дефолтный (но если хочешь можно и в коде созавать).

F2>а в третьих, могут ведь быть проблемы, если в одной jvm исполняется несколько программ.

F2>Или так не бывает ? (я краем уха слышал про сервера приложений, но еще не разбирался, что это такое).
Так не бываат. Ну точнее бывает да в серверах приложений, но там тоже приложения изолируются друг от друга. Если тебя волнуют параметры командной строки и тд это все тебе не надо.

F2>Всё действительно так плохо, или я не понимаю чего-то?

Все норм.
WBR, Igor Evgrafov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.