假设我的node.js应用正在运行。如果有错误(我的意思是所有错误。不仅仅是网页错误。如果它出错了,它很重要),我该如何调用函数向我发送电子邮件?
基本上,在我想要写入err.out之前,我想要发送一封电子邮件给我。
我正在使用node.js并表达。
编辑:我知道如何发送电子邮件。我想知道的问题是如何拦截错误。 你知道当出现错误时,它会记录到 out.log 吗?那么,现在,我是tail -f out.log,监控错误。我不能整天坐在家里这样做。我想在out.log中弹出任何时候通过电子邮件发送给我的错误。
我希望通过电子邮件将 所有 错误发送给我。 (不只是Express错误)。如果已记录,我希望通过电子邮件发送该错误。
答案 0 :(得分:11)
您可以使用一个发送电子邮件的实现替换节点global console.error()函数:
console.error = function(msg) {
// send email
// ...
// additionaly log
process.stderr.write(msg);
};
然后 每个库中的每个调用 对console.error()都会调用你的特定实现发送邮件;)
答案 1 :(得分:1)
查找nodejs smtp clients/servers
emailjs示例
var email = require("./path/to/emailjs/email");
var server = email.server.connect({
user: "username",
password:"password",
host: "smtp.gmail.com",
ssl: true
});
// send the message and get a callback with an error or details of the message that was sent
server.send({
text: "i hope this works",
from: "you <username@gmail.com>",
to: "someone <someone@gmail.com>, another <another@gmail.com>",
cc: "else <else@gmail.com>",
subject: "testing emailjs"
}, function(err, message) { console.log(err || message); });
答案 2 :(得分:0)
由于所有日志条目都存储在有限数量的日志文件中,而不是试图拦截所有可能的错误事件,为什么不设置文件更改监视器并将新行邮寄给您?这样,您还可以使用最后一小时/每天的摘要日志条目来安排时间间隔...与打开单独的邮件相比,这将更容易理解。