LoginSignup
12
14

More than 5 years have passed since last update.

[Laravel]Monologを使ってSlackに通知できたらええやん?したいやん?

Last updated at Posted at 2016-07-22

Monologを使ってSlackへ通知したい

現在運用しているサービスの通知を全て Slack で受け取りたい

ここから全ては始まった。\(^o^)/ハジマタ

LaravelではMonologを使っている

現在のサービスではフレームワークにLaravelを使用しています。

ログはMonologを使っている。

よくよく調べてみると、、、おっ簡単に出来そうやん!!

よっしゃ、いっっちょやってみっか!

ということでやってみるで。

Monologのドキュメントを眺める

ふむふむ φ(゚Д゚ )フムフム…

Monolog-Github

あった!

Handlers, Formatters and Processors

コレの中の

SlackHandler

これやん!

SlackHandler使ってみるで

まずはSlackの設定を作るやで

Laravelのconfigに設定を作るやで
config/slack.php みたいな感じ。

<?php

/**
 * Slack出力設定を行います。
 */

return [

    'slack' => [
        'token'                                             => [slack APIのトークン],
        'channel'                                         => [slack通知したいチャンネル名 etc],
        'name'                                               => '通知した時の通知者名',
        'use_attachment_message'            => true,
        'icon_emoji'                                   => [通知した時のアイコン],
        'over_notification_log_level' => [どのエラーレベル以上でslack通知するか](\Monolog\Logger::ERROR とか),
        'use_bubble'                                   => true,
        'use_short_attachment'              => true,
        'use_context_and_extra'            => true,
    ],

];

MonologにSlackHandlerを追加するやで

// slackのconfigを取得
$slackConfig = \Config::get('slack.slack');

\Log::getMonolog()->pushHandler(
    new \Monolog\Handler\SlackHandler(
        $slackConfig['token'],
        $slackConfig['channel'],
        $slackConfig['name'],
        $slackConfig['use_attachment_message'],
        $slackConfig['icon_emoji'],
        $slackConfig['over_notification_log_level'],
        $slackConfig['use_bubble'],
        $slackConfig['use_short_attachment'],
        $slackConfig['use_context_and_extra']
    )
);

あとはログするだけやで!

over_notification_log_level\Monolog\Logger::ERROR を設定した場合

// これはSlackへ通知される
\Log::error('Slackへ届けこのログ!!');

// これはSlackへ通知されない
\Log::warning('Slackへ届けこのログ!!');

こんな感じで通知されるやで

スクリーンショット 2016-07-22 12.58.35.png

とっても簡単にできました。
Monologの設定以上にSlackのAPIトークン取得のが時間かかったかもしれません。

拙い文章失礼しましたー。

12
14
0

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
12
14