How do I send an email for every error that occurs in Node.js?

耗尽温柔 提交于 2020-06-10 04:08:28

问题


Let's say my node.js app is running. If there is an error (I mean ALL errors. Not just the web error. If it goes to Err out, it counts) , how can I call a function to send an email to me?

Basically, before I want it to write to err.out, I want an email sent to me.

I'm using node.js and express.

Edit: I know how to send an email. The question I want to know is how to intercept the error. You know how when there's an error, it logs to out.log? Well, right now, I'm tail -f out.log, monitoring for errors. I can't sit at home all day doing this. I want errors emailed to me anytime it pops up in out.log.

I want all errors emailed to me. (Not just Express errors). If it's logged, I want that error emailed.


回答1:


You could replace nodes global console.error() function with one implementation sending emails:

console.error = function(msg) {
  // send email
  // ...

  // additionaly log
  process.stderr.write(msg);
};

Then every call in every library made to console.error() would call your specific implementation send out mails ;)




回答2:


Look for nodejs smtp clients/servers

emailjs example

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); });



回答3:


Since all log entries are stored in a limited number of log files, in stead of trying to intercept all possible error events, why not just set up a file change monitor and have the new lines mailed to you? That way you can also schedule intervals with summary log entries of the last hour/day/... which will be a lot easier to go through, compared to opening separate mails.



来源:https://stackoverflow.com/questions/7204474/how-do-i-send-an-email-for-every-error-that-occurs-in-node-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!