我正在使用 NodeJS 开发一个应用程序并部署在 Heroku 中。
我需要记录多行消息(例如堆栈跟踪和其他多行信息),但希望将它们分别保留为一条日志消息。
问题是,当使用 console.log
(或任何使用 console.log
/stdout
的框架)时,它是Heroku 将其解释为多条消息(原始消息中每行一条消息)。
我认为问题在于 Heroku 从进程的 stdout
读取消息,无法区分换行符 (LF
/CR
) 在一条消息中或在多条消息中换行,因此每行创建一条消息。
我尝试将消息直接发送到系统日志(使用 ain2 )而不是标准输出,它适用于多行消息,但仅适用于我的本地环境。
我想在使用 logplex/syslog 的 Heroku 中做同样的事情吗?但是在使用带有默认参数(本地主机、UDP、端口 514)的系统日志时无法记录我的消息。
有没有其他方法可以在 Heroku 中记录多行消息?这是平台的不足吗?
最佳答案
我什至不确定堆栈跟踪的成功程度,因为最终这是基于 syslog
的,而 Heroku 可能对单个 syslog< 的长度有限制
行。不过不确定,而且肯定不知道这个限制。
你可以做的是将每个 \n
替换为 \n>>>
(即:以“>>>”开始每个续行),然后在您的日志处理代码中相应地解析它。
关于node.js - 在 heroku 中记录多行消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19492312/