当前位置: 首页 > 知识库问答 >
问题:

是否有一种方法可以将日志流式传输到Spring Boot应用程序?

姚培
2023-03-14

我有一个Spring Boot应用程序,用作事件记录器。每个客户机通过REST api发送不同的事件,然后将这些事件保存在数据库中。但是除了简单的事件之外,我还需要客户机将他们的执行日志发送到Spring Boot。

现在,在客户机执行完毕后上传日志很容易,而且有很多例子。我需要的是在客户机执行时逐行记录日志,而不是等到客户机完成。

我花了很长时间在谷歌上寻找可能的答案,但我找不到任何符合我需要的东西。有什么建议如何使用Spring Boot(包括未来的版本)来做到这一点吗?可行吗?

共有1个答案

韦熙云
2023-03-14

我在这里看到了几种可能性。首先,考虑在客户机中使用logback(默认的Spring Boot日志实现)SocketAppender或ServerSocketAppender。参见:https://logback.qos.ch/manual/appenders.html。这将允许您向任何日志服务发送日志消息。但我可能建议您不要登录到Spring Boot Event应用程序,因为我怀疑这会不必要地增加应用程序的复杂性,我可以看到这样的情况,即事件应用程序中存在一些bug,然后导致客户机记录一系列错误,这些错误反过来都返回到事件应用程序,从而很难确定最初的错误。

我谨建议您将日志记录到日志服务器-logstash:例如https://www.ellastic.co/products/logstash;或者,如果您已经有一个要将事件保存到的db,那么可以使用日志DBAppender并将日志直接写入一个db。

 类似资料:
  • 我有一个在远程服务器(debian linux)上运行的Java应用程序。该应用程序将运行时信息记录到文件中。 偶尔,支持人员需要使用客户端工具(不是在服务器上运行,而是在支持人员的桌面上运行)分析日志。然后,该工具需要远程访问 < li >服务器上的旧日志文件 < li >当前日志文件(实时增长) 我正在搜索一种良好的(=标准,灵活,安全,调试良好等)方式将这些过去和现在的日志消息流式传输到我的

  • 可以使用标记筛选消息,例如: 但是,我正在尝试使用RoutingAppender根据标记路由消息。我不想在多个附加器中多次过滤相同的参数。以下是我的配置示例(yaml): 文件规定: 根据所有已注册的查找对模式进行评估,结果用于选择路由 然而,似乎并没有标记的查找,LogLevel也是如此。可以在ThreadContextMap中添加自定义MarkerValue或LogLevelValue,但我觉

  • 我有一些用python编写的selenium代码,但问题是selenium总是在程序开始时打印出这个输出 由于我的电脑不支持蓝牙,我也得到了以下输出: 有没有办法只消除硒的产量?

  • 我想知道是否有可能实现2种方式的流式传输使用Spring WebFlow?基本上,我希望让客户端发送服务器接收到的数据通量将它们映射到String,然后返回结果,所有这些都流利地进行,而无需收集数据。我使用RSocket完成了它,但我想知道我是否可以使用超文本传输协议2.0(使用Spring和Project-Retor)获得相同的结果。 试过这样做: 1-客户: 2.服务器: 或者: 或者: 没有

  • 问题内容: 基本上我在寻找一种避免与 和 类似于。 如果我能找到一种工作的方式… 似乎该接口称为BiConsumer。也许以某种方式转换为BiConsumer或Stream.generate() 问题答案: 既然这是一个重复的问题,我将提出一个完整的解决方案。这种类型默认情况下是普通对象周围的简单包装器(尽管可以是,也可以选择)。 它着重于提供方便的中间体操作和不能由调用的方法之一可以容易地进行这

  • 如何将日志文件从Windows 7传输到Linux中的HDFS? Windows中的水槽出现错误 我已经在Windows 7(节点1)上安装了“flume-node-0.9.3”。“flumenode”服务正在运行,localhost:35862可以访问 在Windows中,日志文件位于“C:/logs/Weblogic”。log' CentOS Linux(节点2)中的Flume代理也在运行。