Log4j2 ручной разбор?

Предположим, я использую регистратор, введенный с помощью аннотации @ Log4j2, предоставленной lombok:

logger.info("Successfully stopped communication process");

С этим шаблоном регистрации в моем файле log4j2.xml:

[SERVICE] [%5p] [%d{yyyy-MM-dd HH:mm:ss.SSS}] %-40.40c{1.} : %m%n%ex

Который производит этот вывод в консоли eclipse:

[SERVICE] [ INFO] [2020-01-14 19:38:27.184] c.m.m.c.c.CommunicationProcessController : Successfully stopped communication process

Есть ли способ для меня проанализировать "на лету" строку, которую я хотел бы отобразить, скажем, на компоненте ListView, как если бы моя конфигурация Log4j2 отобразила бы ее? Другими словами, можете ли вы проанализировать запись в журнале, фактически не регистрируя ее, используя возможности сконфигурированной строки в сконфигурированной среде Log4j2?

Всего 1 ответ


Это классическая проблема, которая решается такими вещами, как Splunk или стек ELK. То, что вы просите, является вариацией этого. Проблема может быть разбита на:

  1. Вам нужно использовать приложение, которое записывает журналы в какую-то точку сбора. Это можно сделать, записав что-то вроде Logstash, Flume или Fluentd, которое пересылает журналы, или записав напрямую в что-то вроде Kafka, Elastic Search, в вашу базу данных или в какой-то общий кеш.
  2. В зависимости от резервного хранилища приложение UI должно получить из него события и отобразить их.

Там действительно слишком много вариантов, как это сделать. Все зависит от того, насколько простым, надежным и производительным вам нужно быть.


Есть идеи?

10000