###前提・実現したいこと
Laravel 5.1 でアプリケーションを作っています。
production
環境のみ、エラーがあった際にSlackに通知されるようにしたいです。
###該当のソースコード
vim bootstrap/app.php
php
1// ... 2 3// 本番の場合、Slackに通知する 4if (env('APP_ENV') === 'production') { 5 $app->configureMonologUsing(function($monolog) { 6 $slack_config = config('slack.error_alert'); 7 $monolog->pushHandler( 8 new \Monolog\Handler\SlackHandler( 9 $slack_config['token'], $slack_config['channel'], 10 $slack_config['username'], true, null, $slack_config['level'] 11 ) 12 ); 13 }); 14} 15 16return $app;
これで良いかと思いましたが、 env('APP_ENV')
が null
になってしまい判定できませんでした。
###試したこと
分岐のところで、下記2つも試しましたが駄目でした。
php
1if ($app->environment('production') { // ... 2if (App::environment('production') { // ...
また、 判定する場所も変えてみました。
環境毎の設定はできましたが、肝心のSlackへの通知ができませんでした。
vim app/Providers/AppServiceProvider.php
php
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Support\ServiceProvider; 6 7class AppServiceProvider extends ServiceProvider 8{ 9 // ... 10 11 public function boot() 12 { 13 // 本番の場合、Slackに通知する 14 if (env('APP_ENV') === 'production') { 15 $this->app->configureMonologUsing(function($monolog) { 16 $slack_config = config('slack.error_alert'); 17 $monolog->pushHandler( 18 new \Monolog\Handler\SlackHandler( 19 $slack_config['token'], $slack_config['channel'], 20 $slack_config['username'], true, null, $slack_config['level'] 21 ) 22 ); 23 }); 24 } 25 26 $this->app['request']->server->set(env('APP_PROTOCOL'), 'on'); 27 } 28 29 // ... 30}
public/index.php
でもほぼ同様です。
###補足情報(言語/FW/ツール等のバージョンなど)
Slackへの通知自体はできているので、例えばTokenが間違っているということはありません。
環境の判定でつまづいています。
下記の記事を参考にしました。
- http://qiita.com/qiita-kurara/items/04a3de448506e1d7876c
- http://stackoverflow.com/questions/32354102/send-a-slack-notification-every-time-logerror-is-triggered
$ composer show laravel/framework v5.1.45 monolog/monolog 1.22.0
$ php --version PHP 7.0.13 (cli) (built: Dec 6 2016 21:48:15) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。