参考にしたのはこちら。ほぼこの記事通りで出来ます。
Laravel & Amazon CloudWatch Logs | idealive tech blog
事前準備
- CloudWatchFullAccess権限を持つIAMユーザを作成
- ライブラリインストール
IAMユーザは良いとして、ライブラリのインストールでちょっと嵌まりました。
$ composer require maxbanton/cwh
とやると最新版(執筆時点で2.0.1)がインストールされるわけですが、最新版が要求するmonologのバージョンが2.0以上。一方でLaravel5.8では1.17以上と指定されているのでインストールされる最新版は執筆時点で1.25.3です。なので、maxbanton/cwhのインストールに失敗します。こちらで要求されるバージョンを確認した上で、
maxbanton/cwh – Packagist
バージョンを落として、
$ composer require maxbanton/cwh 1.1.14
とすればインストールすることが出来ます。
実装
ロガークラスはほぼ記事の通り。config/logging.php
については、すべてのログをCloudWatchに送って7日後にすべて消えるってのでいいのか迷ったので、とりあえずCloudWatchに送りつつローカルにもファイルを残すことにしました。stackチャンネルに cloudwatch を追加するだけで実現出来ます。しばらく運用して要らないな、となったら削除する方向で。'stack' => [
'driver' => 'stack',
'channels' => [
'daily',
'cloudwatch'
],
'ignore_exceptions' => false,
],
これでログを見るためにいちいちSSH接続しなくて済むようになりました。便利。