如何在heroku中显示node.js中的所有console.log?
Posted
技术标签:
【中文标题】如何在heroku中显示node.js中的所有console.log?【英文标题】:how to show all console.log from node.js in heroku? 【发布时间】:2015-09-06 22:15:43 【问题描述】:我已将 node.js 应用程序部署到 node.js,但无法从我的应用程序中看到完整的 console.log 语句。我正在使用:
heroku logs
显示了一些日志记录,但看起来不是完整的日志。是否有 node.js 包可以从部署的应用程序发送电子邮件?顺便说一句,电子邮件在我的本地机器上工作正常。
电子邮件代码:
console.log('try to send email hold on');
var nodemailer = require("nodemailer");
var smtpTransport = nodemailer.createTransport(
service: "Gmail",
auth:
user: "myemail@gmail.com",
pass: "mypw"
);
smtpTransport.sendMail(
from: "Dikkebil", // sender address
to: "myemail@gmail.com", // comma separated list of receivers
subject: "Error body", // Subject line
text: 'Error body: ' +error.body+ '\n'+ 'error type:' + error.type +'\n' +'error statuscode:' +error.statusCode +'\n' + 'error args:' + error.arguments[0]
, function(error, response)
if(error)
console.log(error);
else
console.log("Message sent: " + response.message);
);
【问题讨论】:
您在寻找什么日志? console.log 来自部署到 heroku 的 node.js 服务的日志。我可以看到它们的一部分。为什么 nodemailer 1.3.4 不能在 heroku 盒子上运行? nodemailer 在 Heroku 上应该可以正常工作,你能给我们你的代码吗?我不明白您是否在查看日志或发送电子邮件时遇到问题 @Michelem 我已经添加了上面的电子邮件代码。 好的,有什么问题? 【参考方案1】:我用:
heroku logs -n 1000 --tail
那 1000 是你想看到的行数,最多可以是 1500。
【讨论】:
【参考方案2】:来自 heroku 文档:
logs 命令默认检索 100 条日志行。您可以指定 要检索的日志行数(最多 1,500 行) 通过使用 --num(或 -n)选项。
$ heroku logs -n 200
因此,您可能需要使用-n
option 请求更多行。
根据收到的评论,您还可以通过以下方式流式传输当前日志:
$ heroku logs --tail
请look at the doc
【讨论】:
您也可以使用heroku logs --tail
将所有日志流式传输。【参考方案3】:
我总是使用heroku logs -t --app your-app-name
它使 heroku 控制台保持打开状态。
【讨论】:
【参考方案4】:问题似乎在于 Heroku 最多可以保存 1500 行日志。要持久保存并能够查看更多历史记录,您必须添加一些 syslog 消耗来捕获日志或为此使用一些插件。
还有用于存储日志的“免费”插件,例如 Logentries 和 Papertrail https://addons.heroku.com/#logging。
【讨论】:
以上是关于如何在heroku中显示node.js中的所有console.log?的主要内容,如果未能解决你的问题,请参考以下文章
连接到 Heroku node.js 应用程序中的数据库,而不在 git 上显示身份验证详细信息
端口错误:heroku 中的 vue.js+node.js 项目
Heroku+Node.js 如何克隆 node_modules?