Здравствуйте. Изучаю логирование, и ещё не понял, собственно как лучше всего делать логирование. В смысле, непонятно, какую стратегию выбрать. То ли в начале каждого метода вызывать инфо-метод логгера + вызов еррор-метода в исключениях, то ли вообще использовать отдельный объект (или объекты) для логирования по типу прокси-объекта. То ли ещё как-то лучше организовывать логирование в коде. Подскажите, кто знает.
В остальном у меня нет вопросов пока (по крайней мере, по остальному довольно много информации, а по этому пока ничего не нашёл).
Логируйте все, что вам необходимо, делите на уровни INFO/WARN/ERROR/DEBUG/TRACE/CRITICAL. Используйте стандартный логгер, можно прикрутить log4j. В настройках приложния всегда можно указать уровень логирования и подклассы, без перекомпиляции.
Ну как мне кажется, лучше ставить вызовы инфо-методов в началах и концах методов, плюс в кэтчах ставить вызов методов еррор, но это несколько захламляет код, читабельность понижается. Может есть какой-то хороший вариант?
MaxLich, зачем вам INFO везде ставить?! Это так TRACE обычно ставят, да и то только маниаки. Я обычно логирую только самое необходимое, в инфо-ворнинг ставлю информацию, которую хочется донести до пользователя, например прочитан или отсутствует файл настроек, или параметры соединения к внешнему сервису. Ну а трейс можно засунуть и в декоратор. Дебаг использую при необходимости, чтобы в случае чего разобраться в поведении в продакшион мутного кода. ерроры в основном обрабатываю на высоком уровне, все равно стектрейс приходит.
Стандартный логгер лучше не использовать.
Лучше использовать SLF4J в связке с logback или log4j. JUL весь своеобразный велосипед, который к тому же плохо конфигурируется, если верить рассказам.
Алексей Черемисин, Про то, как это всё организовывать вообще, если так выразиться. То есть не про инструменты, а про то, как им лучше всего пользоваться (в общем смысле).
MaxLich, я поверил на слово опыту старших товарищей. Раз. Два.
А вообще на недавнем митапе во Wrike была высказана такая мысль: "Если вы используете JUL в библиотеке - у вас будут проблемы с настройкой логгирования в приложении, которое JUL не использует".
SLF4J дает достаточно стандартную обертку, под которой можно заиспользовать все что угодно. Мне ближе Log4j или его второе пришествие - Log4J2. Но - через обертку. Это позволит пользователям моего кода прикрутить что то еще, было бы у них желание.
Алексей, то есть второй лог4джей - норм? а то на хабре есть статья про историю логирования, она кончается на словах о том, что самой нормальной версией лог4джей на текущей момент является верси 1.2.