LoginSignup
17
18

More than 5 years have passed since last update.

MonologのSlackHandlerでSlackに通知する

Last updated at Posted at 2014-09-27

SlackHandlerが追加

2014/9/30に、Monologの1.11.0がリリースされました。
https://packagist.org/packages/monolog/monolog#1.11.0

新たにSlackHandlerが追加されていたので、早速試してみました。
https://github.com/Seldaek/monolog/pull/377

SlackHandlerの導入

packagistにあるように、monologの1.11.0をrequireします。

$ php composer.phar require monolog/monolog: ~1.11.0

composer.jsonは以下のようになります。

monolog_composer.png

導入方法としては、Monolog/LoggerにSlackHandlerをpushHandlerするだけです。
https://github.com/Seldaek/monolog/pull/377#issuecomment-52928937

Silexだと、以下のようになります。
ちなみに「channel」は「#」付きで指定します。

$app['monolog']->pushHandler(
    new Monolog\Handler\SlackHandler(
        $slackOption['token'], $slackOption['channel'], $slackOption['username']
        true, null, Monolog\Logger::NOTICE, true
    )
);

※1.11.dev-masterから1.11.0の間に、コンストラクターの引数が変更になっているので注意してください。
Move iconEmoji param upfront since Slack was never in a stable release

Slack APIトークンの生成

(2015/09/26更新)
https://api.slack.com/web#authentication
にて、APIトークンを生成します。
詳しくは、こちらを参考に
http://qiita.com/ogawatachi/items/c89b1e92e877ef6b0698

Slackへの通知

あとはloggerにて、メッセージを出力するだけです。
Silexだと、以下のようになるかと。

$app->log('test', [], Monolog\Logger::CRITICAL);

期待通り動作すれば、下記のように指定したチャンネルに通知が届きます。

slack.png

雑感

仕事で、Hipchatを使っていますが、エンジニアだけだったら何の躊躇もなく、Slackに移行できると思います。
Slackを使い始めたばかりではありますが、Hipchatとくらべて気に入っている点は以下のとおりです。

  • 発言者にアイコンがでる
  • 外部連携が豊富で、導入が簡単
  • コードスニペット

大量に通知されるとタイムラインを占領してしまいそうなので、チャンネルを分けたり、通知するログレベルを適切に設定したりするなど、運用上は工夫が必要そうです。
あと、monologの1.11が正式リリースされたら、composerの設定直さないといけないですね。(1.11にあわせて変更しました)

17
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18