MonologのSlackHandlerでSlackに通知する
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/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);
期待通り動作すれば、下記のように指定したチャンネルに通知が届きます。
雑感
仕事で、Hipchatを使っていますが、エンジニアだけだったら何の躊躇もなく、Slackに移行できると思います。
Slackを使い始めたばかりではありますが、Hipchatとくらべて気に入っている点は以下のとおりです。
- 発言者にアイコンがでる
- 外部連携が豊富で、導入が簡単
- コードスニペット
大量に通知されるとタイムラインを占領してしまいそうなので、チャンネルを分けたり、通知するログレベルを適切に設定したりするなど、運用上は工夫が必要そうです。
あと、monologの1.11が正式リリースされたら、composerの設定直さないといけないですね。(1.11にあわせて変更しました)
Author And Source
この問題について(MonologのSlackHandlerでSlackに通知する), 我々は、より多くの情報をここで見つけました https://qiita.com/imunew/items/d0c2066306094a872cbe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .