LoginSignup
3
2

More than 5 years have passed since last update.

Laravel 5.2 で Log を Slack へ送る

Last updated at Posted at 2016-07-08

Slack for Laravel という便利ライブラリーがあったのでこちらを利用して Laravel の Log を Slack へ流せるようにします。

ライブラリのインストール

composer require maknz/slack-laravel

サービスを登録

config/app.php
'providers' => [
  ...
  Maknz\Slack\Laravel\ServiceProvider::class,
],

'aliases' => [
  ...
  'Slack' => Maknz\Slack\Laravel\Facade::class,
],

設定

設定ファイルを作成

php artisan vendor:publish

Slack 管理画面で Webフックを作成

フック新規作成画面でフックを作成して「Webhook URL」をコピー。

設定ファイルを編集

上記でコピーした URL を endpint にペーストし、その他の設定も調整する。

config/slack.php
return [
    'endpoint' => 'https://hooks.slack.com/hogehoge',
    'channel'  => '#hogehoge',
    ...
];

AppServiceProvider.php にログ送信処理を追記

app/Providers/AppServiceProvider.php
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        \Log::listen(function ($level, $message) {
            \Slack::attach([
                'text' => date('r'),
                'fields' => [
                    [
                        'title' => '[' . strtoupper($level) . ']',
                        'value' => $message,
                    ],
                ],
            ])->send();
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

※ Listener クラスを作って EventServiceProvider.php に登録してもよいかも。

テスト送信

\Log::debug('テストメッセージです');
\Log::debug(['テストメッセージ1です','テストメッセージ2です']);

Screenshot from 2016-07-09 12-16-39.png

メッセージの体裁を調整する

以下を確認するとなんとなくわかるのでいろいろいじってみると幸せになれそう。

※ 上記のままだとすべての Log が送られてしまうので、実際には APP_ENV などによって送信するログレベルを調整する必要があるかと思います。

3
2
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
3
2