我正在使用 NodeJS 开发一个应用程序并部署在 Heroku 中。
我需要记录多行消息(例如堆栈跟踪和其他多行信息),但希望将它们分别保留为一条日志消息。
问题是,当使用console.log
(或任何使用console.log
/的框架stdout
)和多行消息时,它被 Heroku 解释为多条消息(原始消息中的每一行一条消息)。
我认为问题在于 Heroku 从进程中读取消息,stdout
并且无法区分一条消息中的换行符(LF
/ CR
)或多条消息中的换行符,因此每行创建一条消息。
我尝试将消息直接发送到 syslog(使用ain2)而不是标准输出,它适用于多行消息,但仅适用于我的本地环境。
我想在使用 logplex/syslog 的 Heroku 中做同样的事情?但是在使用带有默认参数(localhost、UDP、端口 514)的 syslog 时无法记录我的消息。
有没有其他方法可以在 Heroku 中记录多行消息?这是平台的不足吗?