本番で動作するDockerfileを追加する
Closed this issue · 2 comments
kobayashi-m42 commented
Doneの定義
表題の通り。
keitakn commented
@kobayashi-m42 この課題とは直接関係はないんだけど、この課題の中で nekonomokochan/php-json-logger
のバージョンを最新にした上で以下の変更を当てておくと良いかも🐱!
app/Infrastructure/Logger.phpの __invoke
を以下のように変更する↓
public function __invoke(array $config)
{
$slackHandlerBuilder = new SlackHandlerBuilder($config['slack_token'], $config['slack_channel']);
$traceId = Uuid::uuid4();
$builder = new LoggerBuilder($traceId);
$builder->setChannel('qiita-stocker-backend');
$builder->setLogLevel(JsonLogger::toMonologLevel($config['level']));
$builder->setUseInDocker(true);
$builder->setSkipClassesPartials(['Illuminate\\']);
$builder->setSlackHandler($slackHandlerBuilder->build());
return $builder->build();
}
それから config/logging.php の配列も少し変更↓
'channels' => [
'app' => [
'driver' => 'custom',
'level' => env('APP_LOG_LEVEL', 'debug'),
'slack_token' => env('NOTIFICATION_SLACK_TOKEN'),
'slack_channel' => env('NOTIFICATION_SLACK_CHANNEL'),
'via' => App\Infrastructure\Logger::class,
],
こうするとJSON形式のアプリケーションログが標準出力されるようになるから、CloudWatchにログを送信出来るようになるよ👍
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/using_awslogs.html
EC2モードで起動している場合はSSHでコンテナを実行しているインスタンスに入れるからまだマシだけどFargateの場合、これをやってないとエラーが起きた時に何が起こったか分かりにくいから、設定を変更しておくと良いと思う!
※ ログの設定は後回しで、別issueで対応でも、もちろん👍
kobayashi-m42 commented
@keitakn
コメントありがとう!これも合わせて対応しちゃうね!