Help us understand the problem. What is going on with this article?

MonologのSlackHandlerでSlackに通知する

More than 3 years have passed since last update.

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にあわせて変更しました)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした