LoginSignup
2
2

More than 3 years have passed since last update.

【Laravel】ElasticBeanstalkで動いているLaravelのログを簡単にCloudWatch Logsに送る【Tips】

Posted at

これは何

環境変数を追加するだけで、Elastic Beanstalkで動いているLaravelのログをお手軽にCloudWatch Logsに転送する方法です。
CloudWatch Logsに転送されれば、いちいちeb sshでインスタンスにログインしてログを見たりしなくて済みます。

どうなる?

ElasticBanstalkがデフォルトでCloudWatchLogsに連携している、/var/log/httpd/erro_logにLaravelのログ書き出す様にする

やりかた

Laravelが吐き出したログはデフォルトではstorage/logs/laravel.logファイルに書き込まれます。

これはlogger.phpで以下の様に設定されているからです。

config/logging.php
<?php

use Monolog\Handler\StreamHandler;

return [

    /*
    |--------------------------------------------------------------------------
    | Default Log Channel
    |--------------------------------------------------------------------------
    |
    | This option defines the default log channel that gets used when writing
    | messages to the logs. The name specified in this option should match
    | one of the channels defined in the "channels" configuration array.
    |
    */

    'default' => env('LOG_CHANNEL', 'stack'),

    // 略

環境変数のLOG_CHANNELを設定することで、簡単にこれを変更することができます。

Elasticbeanstalkのコンソールから以下の様に設定しましょう

LOG_CHANNEL=errorlog

こうすると、

/var/log/httpd/error_log

にログが書き出されるようになります。
このログファイルは、BeanstalkがデフォルトでCloudwatch ログに転送する様に設定されているので、

AWSコンソールの

CloudWatch > ログ > ロググループ > hogehoge_beanstalk_enviroment/var/log/httpd/error_log

からログの中身を確認することができます。

もっといいやり方

同僚の @yamotuki さんが書いてました
同じ様にしてlaravel.logをCloudwatch Logsに入れられるはずです。

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