状況
現在、RailアプリをDockerに乗せて、AWSのFargateで動かしています。
デプロイ自体は完了していてアプリも問題なく動くのですが、ログの出力がうまくいきません。
発生している問題・エラーメッセージ
production.rbに下記のように設定していてもproduction.logが出力されません。
if ENV['RAILS_LOG_TO_STDOUT'].present? logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end
環境変数のRAILS_LOG_TO_STDOUTも設定しております。CloudWatchにawslogsで送っております。
ログ設定 ログドライバー: awslogs awslogs-group XXXXLogs awslogs-region ap-northeast-1 awslogs-stream-prefix XXXXXX
ただしこれで出力されるのは、pumaの起動ログ(?)の
=> Booting Puma => Rails 6.0.2.1 application starting in production => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.1 (ruby 2.6.4-p104), codename: Mysterious Traveller * Min threads: 0, max threads: XX * Environment: production * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop
のみで、止まります。
この後に出力して欲しいrailsから標準出力されるであろうはずのログ
Processing by XXXController#index as HTML [1m[36mUser Load (1.2ms)[0m [1m[34mSELECT `users`.* FROM `users` WHERE `users`.`id` = X ORDER BY `users`.`id` ・・・
といった形のログは出てきません。
開発環境ではdevelopment.logは出力されており、ログも書き込まれています(しかしこちらもdocker-compose up後のコンソールには出てきません)。
アプリの前にnginxコンテナをおいており、こちらのアクセスログは問題なく取れるのですが、railsのlogは取れません。gem 'lograge'を入れてみたのですが、結果は同じでした。
質問
Rails、Docker、Puma、ECSといった環境でRailsのログが標準出力で正しく表示されない原因、些細なことでもなにか思い当たることがある方はご教示いただけましたら幸いです。
色々調べて試しては見たのですが、どうにもならずここで質問させて頂きます。ちなみに、12factorといったgemが原因で出ないということは読んだのですが、当方の環境ではいれておりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。