slack-winstonでログをSlack通知する

Node.js でloopbackを使ってAPIを書くことをここ最近ずっとしていて、winstonでアプリケーションのログを取る様にする際にした際、ついでに一定レベル以上のログ(エラーログ)の場合は内容をSlackにも通知できないかなと調べると由ななwinstonのプラグインを見つけたので使ってみた。

github.com

お約束。npmコマンドでインストール。

$ npm install slack-winston --save

以下の様な形で利用できます。

var winston = require('winston');
var slackWinston = require('slack-winston').Slack;
var options = {
domain: 'remp',
token: '******',
channel: '#remp',
username: 'REMP API winston',
message: '[{{level}}] {{message}}',
level: 'warn'
}
winston.add(slackWinston, options)

なお、token の部分には、Slackの"Incoming WebHooks"の設定で得られるWebhook URLの末尾の文字列を渡します。

あとは、winstonでログ出力をする要領で記述を行うと

winston.warn("Winston test");

winstonのログは出力されつつ...

f:id:hideack:20150816114012p:plain

Slackの指定したチャンネルにも通知されます。

f:id:hideack:20150816114005p:plain

先の例に書いた通り、メッセージ内容や通知レベルも個別で指定できるので便利。

(Visited 13 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です