概要
- nodejs/Express/node-configと一緒に、log4jsでメールを送信する設定です。
方法
- smtp appenderを使います。詳細はこちら→(https://github.com/nomiddlename/log4js-node/wiki/SMTP)
事前準備
以下をnpm installしておきます。
- expressjs
- node-config
- log4js
- nodemailer
サンプル
- node-configのconfig.jsonのサンプルです。
"log4js": {
"appenders": [{
"category": "access",
"type": "dateFile",
"filename": "./reports/logs/access.log",
"pattern": "-yyyy-MM-dd",
"backups": 3
},
{
"category": "system",
"type": "dateFile",
"filename": "./reports/logs/system.log",
"pattern": "-yyyy-MM-dd",
"backups": 3
},
{
"category": "mailer",
"type": "smtp",
"recipients": "logfilerecipient@logging.com",
"sendInterval": 5,
"transport": "SMTP",
"SMTP": {
"host": "smtp.gmail.com",
"secureConnection": true,
"port": 465,
"proxy": "proxy.hogehoge.co.jp", // プロキシがあればここに設定
"auth": {
"user": "****@gmail.com", // user
"pass": "**********" // パスワード
},
"debug": true
}
},
{"type": "console"}],
"levels": {
"access": "WARN",
"system": "DEBUG",
"mailer": "warn"
}
},
- logger.jsのサンプルです。
var log4js = require('log4js');
var config = require('config');
log4js.configure(config.log4js);
module.exports = {
access: log4js.getLogger('access'),
system: log4js.getLogger('system'),
mailer: log4js.getLogger('mailer'),
express: log4js.connectLogger(log4js.getLogger('access'), {level: log4js.levels.INFO})
};
- 実際のコード中での呼び出し方です。
var logger = require('logger.js');
logger.mailer.warn('test warn mail');
logger.mailer.error('test error mail');
メール本文に以下のように出力されます。メールタイトルは「test warn mail」などになります。
[2016-03-09 15:30:04.571] [WARN] mailer - test warn mail
[2016-03-09 15:30:04.587] [ERROR] mailer - test error mail
以上です。