订阅 slf4j 实时日志?

Subscribing for slf4j realtime log?

问题定义:在单独的 java 进程中有一个应用程序,我们希望在必要时(按需)将其实时日志流式传输到其他应用程序。

应用程序使用 slf4j,是否有可能访问 slf4j 的实时日志输出?我想避免扫描最新的日志文件...

理想情况下,我想有可能传递消息的消费者,如 Consumer<String>(或更好的一批消息的消费者 Consumer<Collection<String>>),它将在每个日志消息上异步调用。 ..

有什么想法可以实现吗?

好吧,SLF4J 只是一个日志外观,但实现有各种不同的 appenders,允许您将日志事件发送到各种不同的地方。文本文件只是人们在对日志记录没有任何特殊要求时通常使用的文件。有 JMS 队列、套接字、数据库和许多其他的附加程序。

这应该会给你很多考虑的可能性。

据我了解,slf4j 是日志框架的抽象。我们可以包装不同的日志框架。所以,slf4j 没有任何选项可以做到这一点。我们可以通过以下选项解决您的问题

  • 您需要其他系统的事务日志。也许我们可以 在其他系统上实现数据库附加程序以记录 交易。我可以通过连接到数据库来阅读。
  • 您可以从将读取日志的其他系统公开休息服务 文件和 post 到您的环境。