Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Настройка log4j: вывод логов конкретного класса в файл

Быстрый ответ

Для перенаправления логов конкретного класса в отдельный файл с помощью log4j нужно настроить логгер с полным наименованием класса и связать его с указанным файлом. Для примера что это может выглядеть так в файле log4j.properties:

properties
Скопировать код
# В log4j Appenders выполняют функцию доставки ваших логов.
log4j.appender.CUSTOM=org.apache.log4j.FileAppender
log4j.appender.CUSTOM.File=particular.log

# Логгер контролирует логи вашего класса аналогично тому, как Бэтмен следит за Готэмом.
log4j.logger.com.yoursite.YourClass=INFO, CUSTOM

# Логгер не должен отображать повторяющиеся сообщения, поэтому стоит отключить additivity.
log4j.additivity.com.yoursite.YourClass=false

Здесь CUSTOM — это название вашего Appender'а, com.yoursite.YourClass — полное имя целевого класса. В итоге логи из YourClass будут записываться только в файл particular.log.

Кинга Идем в IT: пошаговый план для смены профессии

Организация логгеров и файлов

Настройки логгеров и файлов для организации логирования можно структурировать в конфигурационном файле log4j, представив их в XML-формате для удобства чтения:

xml
Скопировать код
<!-- Корректная перенаправление логов в файлы с помощью log4j сводится к управлению логами, как Человек-паук пользуется паутиной между зданиями. -->
<appender name="FileAppender" class="org.apache.log4j.RollingFileAppender">
  <param name="File" value="specific.log"/>
  <param name="MaxFileSize" value="10MB"/>
  <param name="MaxBackupIndex" value="5"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%c{1}] %m%n"/>
  </layout>
</appender>

<!-- Логгеры — это аналог джарвиса, который осуществляет сортировку и контроль логов. -->
<logger name="com.yoursite.YourClass" additivity="false">
  <level value="INFO"/>
  <appender-ref ref="FileAppender"/>
</logger>

Применение правильной политики логирования

Сформулируйте политику логирования, чтобы избежать переполнения жёсткого диска. Быть может, вы захотите использовать TimeBasedTriggeringPolicy и стратегии для автоматического удаления устаревших записей.

Как улучшить и использовать логи

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

Визуализация

Настройка Log4j напоминает настройку радиоприёмника на ваш любимый канал логирования. Если классы настроены на разные «частоты» (файлы и уровни логгера), это поможет вам оставаться «на волне» логов:

Java
Скопировать код
// 🎵 Входим на нужную волну...
log4j.logger.SpecificClass=DEBUG, AppenderFM984
log4j.appender.AppenderFM984=org.apache.log4j.FileAppender
log4j.appender.AppenderFM984.File=specific.log

Такой подход позволит вам легко «вылавливать» необходимую информацию из разных «волн» логов.

Улучшение функционала логирования

Использование свойства log4j.logger

Установка связи логгера с классом через свойство log4j.logger позволяет точно организовывать логи, генерируемые каждым классом.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Противодействие дублированию логов

Свойство additivity ключевым образом помогает предотвратить дублирование логов и гарантирует уникальность каждой записи.

Консистентное форматирование логов

Используйте формат ConversionPattern для консистентной и чёткой записи информации в логах. Это обеспечит порядок и упрощает анализ данных.

Эффективное использование LogManager

Метод LogManager.getLogger() позволяет создавать специализированные логгеры в процессе работы программы, что дает возможность динамически управлять различными типами логов без нарушения общих принципов настройки.

Полезные материалы

  1. Log4j – Конфигурирование Log4j 2 — официальное руководство по настройке Log4j 2.
  2. Log4j – Appenders Log4j 2 — детализированная документация по Appenders в Log4j 2.
  3. DZone: Детальное управление логами с Log4j 2 — стратегии для детального контроля логов в Log4j 2.
  4. Log4j2 Пример обучающего руководства – Конфигурация, уровни, Appenders — практическое руководство по использованию Log4j 2.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какое свойство позволяет предотвратить дублирование логов?
1 / 5
Свежие материалы
Видео уроки по Java
6 сентября 2024
Видео уроки по C++
6 сентября 2024