Журналирование#

Настройка логирования в crx-mirror-maker-log4j.properties:

log4j.rootLogger=INFO, stdout, mirrorMakerAppender

# Апендеры для логирования взаимодействия с SecMan
log4j.logger.ru.sbrf.kafka.secman=DEBUG, mirrorMakerSecmanAppender
log4j.logger.ru.sbrf.vault.api=DEBUG, mirrorMakerSecmanAppender

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.mirrorMakerAppender=ru.sbrf.kafka.log4j.RollingAndCompressFileAppender
log4j.appender.mirrorMakerAppender.File=${kafka.logs.dir}/crx-mirror-maker.log
log4j.appender.mirrorMakerAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.mirrorMakerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.mirrorMakerAppender.MaxBackupIndex=9
log4j.appender.mirrorMakerAppender.MaxFileSize=50MB

# Настройка апендера для взаимодействия с SecMan
log4j.appender.mirrorMakerSecmanAppender=ru.sbrf.kafka.log4j.RollingAndCompressFileAppender
log4j.appender.mirrorMakerSecmanAppender.File=${kafka.logs.dir}/crx-mirror-maker-secman.log
log4j.appender.mirrorMakerSecmanAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.mirrorMakerSecmanAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.mirrorMakerSecmanAppender.MaxFileSize=50MB
log4j.appender.mirrorMakerSecmanAppender.MaxBackupIndex=10

Уровни логирования:

  • INFO: Основные события репликации (рекомендуемый).

  • DEBUG: Детализация для отладки. Данный уровень существенно увеличивает объем сообщений и не рекомендуется к использованию в промышленной инсталляции.

  • ERROR: Критические сбои.

По умолчанию MM2 ведет журнал в ${kafka.logs.dir}/crx-mirror-maker.log и в ${kafka.logs.dir}/crx-mirror-maker-secman.log.

Параметры для апендера:

Параметр

Назначение

Тип значения

Значение по умолчанию

Шаблон значения

Связанные параметры

log4j.appender.<имя аппендера>

Имя Java-класса, отвечающего за запись логов в файл с ротацией файлов, например, ru.sbrf.kafka.log4j.RollingAndCompressFileAppender

String

Нет (необходимо явно указывать)

Все последующие параметры, начинающиеся с префикса log4j.appender.<имя аппендера>.*

log4j.appender.<имя аппендера>.File

Путь к файлу журнала, куда будут записываться события

String

Нет (необходимо явно указывать)

Могут использоваться переменные окружения, например, ${kafka.logs.dir}

log4j.appender.<имя аппендера>.layout

Имя Java-класса, определяющего формат вывода записей в журнал, например, org.apache.log4j.PatternLayout

String

Нет (необходимо явно указывать)

Параметр ConversionPattern, определяющий конкретный шаблон вывода

log4j.appender.<имя аппендера>.layout.ConversionPattern

Шаблон строки, определяющий структуру каждой записи в журнале

String

Форматированный шаблон, содержащий специальные символы, такие как:

  • %d — дата-время;

  • %p — приоритет (уровень логирования);

  • %m — само сообщение;

  • %c — категория (класс источника);

  • %n — новая строка.

Зависит от типа layout (в данном случае PatternLayout)

log4j.appender.<имя аппендера>.MaxBackupIndex

Максимальное количество резервных копий старых файлов журнала после ротации

Целое число

1

MaxFileSize

log4j.appender.<имя аппендера>.MaxFileSize

Максимальный размер одного файла журнала до начала процесса ротации

String

10 MB

\d<размерность>, где <размерность> — MB, KB и так далее.

MaxBackupIndex

Пример фильтрации логов для поиска проблем#

# Ошибки репликации
grep "ERROR" /opt/Apache/kafka/logs/crx-mirror-maker.log

# Предупреждения о задержках
grep "WARN.*latency" /opt/Apache/kafka/logs/crx-mirror-maker.log