在 js-sumo-logger 的文档中,如果您想避免暴露 Sumo Logic 端点,他们建议使用 Node.js 服务器将日志发送到 Sumo Logic。
如果您对此感到担忧,我们建议您使用运行在您服务器上的 Node.js 应用程序中的库,这样您的端点 URL 就不会暴露。
我还没有找到任何关于如何实现这一点的文档。我遇到的唯一提示是这个非常过时的示例:https ://www.sumologic.com/blog/javascript-logging-sdk/ 在该示例中,看起来他们都在使用 SDK 将日志发送到节点服务器从 FE 并将日志从节点服务器发送到 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","url":"/","level":"error","message":"Unexpected Error"}
{"sessionId":"afa9496d-cdda-49d0-92ac-bc994d1c891c","timestamp":"2021-03-30T18:28:41.702Z","url":"/","level":"error","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)
有没有其他方法可以解析这个请求?