2016-01-03 6 views
0

Определение проблемы: есть приложение в отдельном java-процессе, и мы хотим по потоку вести его в реальном времени в других приложениях, когда это необходимо (по требованию).Подпишитесь на slf4j realtime log?

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

В идеале я предполагаю, что будет возможность передать потребителю сообщение как Consumer<String> (или лучше потребителю партии сообщений Consumer<Collection<String>>), которые будут вызываться асинхронно на каждом log message ...

любые идеи, как это можно достичь?

+0

Считаете ли вы использование какой-либо очереди, такой как Kafka или ActiveMQ? Я просто надеюсь, что это поможет. – YoungHobbit

+0

Нет, мне не нужна очередь сообщений, например, kafka, более того, я хочу сделать это подключаемым, так что, если вы отключились, вы не наложите накладные расходы на регистрацию фреймворка ... это будет включено только тогда, когда приложение работает в режиме реального времени, но является mulfunctioning ... – vach

+0

это должно быть просто, я просто надеялся, что есть что-то лучше, чем создание другого appender и т. д. – vach

ответ

1

Ну, SLF4J просто каротаж фасад, но реализация имеет все виды различного appenders, которые позволяют отправлять записи событий для всех видов различных мест. Текстовый файл - это тот, который обычно используется, когда у него нет особых требований для ведения журнала. Есть приложения для JMS-очередей, сокетов, баз данных и десятки других.

Это должно дать вам много возможностей рассмотреть.

+0

, поэтому я должен реализовать конкретный appender для моей фактической реализации logger (скажем, log4j)? – vach

+0

Вам не нужно реализовывать приложение, просто используйте его. – Kayaman

0

В соответствии с моим пониманием slf4j является абстракцией структуры ведения журнала. Мы можем обернуть различные рамки ведения журнала. Таким образом, slf4j не имеет никаких возможностей для этого. Мы можем решить вашу проблему с помощью нижеуказанных опций.

  • Вам нужен журнал транзакций другой системы. Возможно, мы сможем использовать приложение базы данных в другой системе для регистрации транзакций . Я могу прочитать, подключившись к db.
  • Вы можете открыть службу отдыха из другой системы, которая будет читать файл журнала и опубликовать его в вашей среде.
Смежные вопросы