如何通过js-sumo-logger中的节点服务器发送批量相扑逻辑日志

问题描述

在 js-sumo-logger 的文档中,如果您想避免暴露 Sumo Logic 端点​​,他们建议使用 Node.js 服务器将日志发送到 Sumo Logic。

如果您对此感到担忧,我们建议您使用来自 Node.js 应用程序在您的服务器上运行,因此您的端点 URL 永远不会 暴露了。

我还没有找到任何关于如何实现这一点的文档。我遇到的唯一提示是这个非常过时的例子:https://www.sumologic.com/blog/javascript-logging-sdk/ 在该示例中,看起来他们既使用 SDK 从 FE 向 Node 服务器发送日志,又从 Node 服务器向 Sumo Logic 发送日志。

我每隔一段时间从 FE 向我们的 Node 服务器发送批处理日志,以避免在应用程序已经遇到多个错误时强制进行额外的网络调用。我遇到的问题是,对于批处理日志,Sumo Logic SDK 发送一系列由换行符分隔的对象,而不是发送有效的 JSON。当我们的 express 服务器尝试解析 JSON 时,它会抛出一个无效的 JSON 错误

这是一个示例请求正文

{"sessionId":"afa9496d-cdda-49d0-92ac-bc994d1c891c","timestamp":"2021-03-30T18:28:38.256Z","url":"/","level":"error","message":"Unexpected Error"}
{"sessionId":"afa9496d-cdda-49d0-92ac-bc994d1c891c","timestamp":"2021-03-30T18:28:38.407Z","timestamp":"2021-03-30T18:28:41.702Z","message":"Unexpected Error"}

这是我们的服务器抛出错误的行

app.use(express.json()) // for parsing application/json

这是错误信息

SyntaxError: Unexpected token { in JSON at position 184
    at JSON.parse (<anonymous>)
    at parse (/home/projects/myProject/node_modules/body-parser/lib/types/json.js:89:19)

是否有其他方法可以解析此请求?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)