将日志从REST服务发送到HTML页面

时间:2016-07-04 12:55:37

标签: java rest

我在服务器A上有一个REST服务。由于log4j,服务正在做一些事情并记录一些消息。

除此之外,我在服务器B上有一个网页,通过AJAX调用该服务并获得响应。除了接收响应(对我来说工作正常),我想在页面上打印来自服务器端的日志消息。

换句话说,我希望每次服务器A端都有新的日志消息时,视图就会显示它。

要实现这一目标的任何想法?

修改 如何使用websocket从log4j套接字appender中检索日志?

2 个答案:

答案 0 :(得分:0)

您将创建一个REST端点以将原始日志数据检索为GET /logs HTTP/1.1 Accept: text/plain 。它可能是以下内容:

GET /logs?from=2016-07-03T10:00:00Z&to=2016-07-04T10:00:00Z HTTP/1.1
Accept: text/plain

您还可以提供一些查询字符串参数来按日期和时间过滤日志,如下所示:

text/plain

然后您的客户端可以请求此类端点,检索他们想要的数据并在HTML页面中显示日志。

如果您希望在服务器端呈现HTML页面,而不是接受text/html,请接受14

对于实时日志记录,您可以考虑WebSockets

答案 1 :(得分:0)

我终于找到了解决问题的方法:

我创建了一个单例记录器。每次我想记录消息时,我都会获得记录器的实例,并将新消息添加到日志的ConcurrentLinkedList中。

另一方面,我创建了一个新的休息服务。每一秒我都用ajax查询来调用这个服务。它删除列表的日志消息并返回它们。视图显示它们。