Slack流行ってますね。使ってみたいんですけど、周り誰も使ってないんでボットとおしゃべりしてます。

さみしいんで、ログをSlackで読めるようにします。

きっとにぎやかになるね(泣)

使う環境は

node.js(v6.11.3)

typescript(2.5.3)

です。

配布元を参考に設定していきます。

(無いなら)Slackワークスペース作成

Slackで”Create Workspace”。

最初のユーザー(=管理者)のメールアドレスを入力して画面の指示に従います。

できた。

nodeプロジェクトの作成

npm initなりpackage.json をコピーするなりしてnodeプロジェクトを作成します。

絶対必要なパッケージはlog4jsですかね。

token idなんかをgitに流さないようにするためconfigも使います。

1
> npm install log4js config --save

その他もろもろ開発に必要なパッケージをインストールしてこんな感じになりました。

npm installを忘れずに。

configファイルの作成

プロジェクトフォルダ下にconfigフォルダを作って、

  • default.json
  • development.json
  • production.json

の3ファイルを作ります。

そのうちdevelopment,productionはgit管理から外すため、.gitignoreに

を追記。

これ忘れると機密情報が漏洩したりするんで要注意。

config/default.json

とりあえずコンソールにのみ出力する設定にしておきます。

ログ書き出しプログラム

configの設定に基づいてログを吐くスクリプトを書きます。

configを読むようにしておけばスクリプト変更なしで出力先の切り替えができます。

実行するとコンソールに

1
2
3
4
5
[2017-11-07 22:39:50.932] [FATAL] default - Some system messages
[2017-11-07 22:39:50.932] [ERROR] default - Some error messages
[2017-11-07 22:39:50.932] [WARN] default - Some warn messages
[2017-11-07 22:39:50.932] [INFO] default - Some info messages
[2017-11-07 22:39:50.932] [DEBUG] default - Some debug messages

みたいに表示されます。

開発環境用設定追加(development.json)

試しにファイルにも出力するようにdevelopment.jsonを変更してみます。

config/development.json

ここに書いた情報でdefault.jsonが上書きされます。

これで実行するとコンソールと同じ内容がlogs/logWithConfig.logにも書き出されます。

Slack API トークンの生成

公式のドキュメントを参考にAPIトークンを生成します。

まずはアプリ作成にアクセス。

アプリ名と先に作ったワークスペースを入力し”Create App”

アプリが作成されるとBasic Informationページに移動するので、

“Add features and functionality”セクションで”Permissions”を選んでみる。

う~ん、log4jsが何使うかわからないけど、とりあえず”Send messages as log4jsSample”を許可しとく。

“Basic Information”に戻って”Install your app to your workspace”で”Install App to Workspace”を押す。

んで”Authorize”

**成功すると”OAuth & Permissions”の”OAuth Access Token”に値が入ります。

これがapi tokenになるみたいです。**

log4jsでSlack Appenderの設定

こちらを参考にdevelopment.jsonに追記。

config/development.json

実行

上手くいくとslackにログが出ます。

結構簡単だし、使い方によっては便利かと。