问题描述
在 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 (将#修改为@)