在heroku中记录多行消息

时间:2013-10-21 10:41:22

标签: node.js logging heroku

我正在使用NodeJS开发一个应用程序并在Heroku中部署。

我需要记录多行消息(例如堆栈跟踪和其他多行信息),但是希望将它们作为一条日志消息保留。

问题在于,当使用console.log(或使用console.log / stdout的任何框架)和多行消息时,它被解释为Heroku的多条消息(每条线路中有一条消息)原始信息)。

我认为问题在于Heroku会从流程“stdout中读取消息,并且无法区分一条消息中的换行符(LF / CR)或换行符在多个消息中,因此每行创建一个消息。

我尝试将消息直接发送到syslog(使用ain2)而不是stdout,它可以使用多行消息,但只能在我的本地环境中使用。

我想在Heroku中使用logplex / syslog做同样的事情吗?但是在使用带有默认参数(localhost,UDP,端口514)的syslog时,无法记录我的消息。

还有其他方法可以在Heroku中记录多行消息吗?这是平台的缺陷吗?

1 个答案:

答案 0 :(得分:0)

我甚至不确定你对堆栈跟踪的成功程度,因为最终这是基于syslog的,而Heroku可能对单个syslog行的长度有限制。但不确定,当然不会知道限制。

您可以做的是用\n替换每个\n>>>(即:使用“>>>”开始每个续行),然后在日志处理中相应地解析它代码。