Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@YujiNaito

[Heroku][Rails]ログ出力方法

More than 1 year has passed since last update.

はじめに

Railsでログを追加する場合、主にloggerを使用するかと思いますが、そのままではHerokuでログが残りません。
利用は以下2点。
・Herokuは標準出力されたものをログとして保存している
・Railsのloggerはデフォルトではファイル出力

loggerで追加したログをHerokuでも残るように設定する方法を記載します。

対応方法

結論から記載すると、Heroku側にRAILS_LOG_TO_STDOUTという環境変数を設定することで対応します。

対応手順

1.メニューの「Dashboard」
2.設定したいアプリケーション選択
3.「Settings」タブ
4.「Reveal Config Vars」ボタンをクリック
5.「Config Vars」にそれぞれ以下を入力
 KEY:RAILS_LOG_TO_STDOUT
 VALUE:任意の値 ※"true"で確認済み
6.「Add」ボタンをクリック
7.アプリケーションを再起動

Railsの設定ファイルについて

RailsではどこでRAILS_LOG_TO_STDOUTを参照しているかを紹介しておきます。

config/environments/production.rb
Rails.application.configure do
  ()
  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end
  ()
end

注意点

この対応を行うと、ログの量が大幅に増えるためログが流れてしまわないように注意してください。
Herokuはログを保存しておく量が少ないため、アドオンを入れるなどの対策をしない場合、せっかく追加したログが流れてしまって取得できない、という事態になりかねません。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
YujiNaito
元々は組み込みエンジニアとしてC言語で開発していましたが、色々あって今はWEBエンジニアとして活動中。 主にRuby/Rails/HTML/JSを使っています。 Java/Perl/Pythonも多少は分かります。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?