Как отправить электронное письмо для каждой ошибки, возникающей в Node.js? - PullRequest
5 голосов
/ 26 августа 2011

Допустим, мое приложение node.js запущено.Если есть ошибка (я имею в виду ВСЕ ошибки. Не только веб-ошибка. Если она выходит из-за ошибки, она считается), как я могу вызвать функцию для отправки мне электронного письма?

Как правило, до этогоЯ хочу, чтобы он написал на err.out, я хочу, чтобы мне отправили электронное письмо.

Я использую node.js и экспресс.

Редактировать: Я знаю, как отправить электронное письмо.Вопрос, который я хочу знать, заключается в том, как перехватить ошибку .Вы знаете, как, когда есть ошибка, она регистрируется в out.log ?Ну, прямо сейчас, я tail -f out.log, отслеживаю ошибки.Я не могу сидеть дома весь день, занимаясь этим.Я хочу, чтобы ошибки высылались мне по электронной почте в любое время, когда они появляются в out.log.

Я хочу все ошибок, отправленных мне по электронной почте.(Не только экспресс ошибки).Если он зарегистрирован, я хочу, чтобы эта ошибка была отправлена ​​по электронной почте.

Ответы [ 3 ]

11 голосов
/ 08 сентября 2011

Вы можете заменить узлы глобальной функции console.error () одной реализацией, отправляющей электронные письма:

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

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

Затем каждый вызов в каждой библиотеке , сделанный для консоли.error () будет вызывать вашу конкретную реализацию отправлять письма;)

1 голос
/ 26 августа 2011

Ищите nodejs smtp клиенты / серверы

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); });
0 голосов
/ 13 сентября 2011

Поскольку все записи журнала хранятся в ограниченном количестве файлов журнала, вместо того, чтобы пытаться перехватить все возможные события ошибок, почему бы просто не настроить монитор изменения файлов и не отправить вам новые строки по почте? Таким образом, вы также можете запланировать интервалы с краткими записями в журнале за последний час / день / ..., которые будут намного легче проходить, по сравнению с открытием отдельных писем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...