search
LoginSignup
147

More than 5 years have passed since last update.

posted at

updated at

Organization

Railsでlogを出力しdebugする

RailsのControllerでlogを出力する

開発をしていると、適切な場所に処理が通っているのか
変数の中身がなんなのか
など確認したいことが色々出てきます。

そうなった場合にRailsでは、logger.debugを使用して確認できます。

logger.debugを使用するとlog/development.logにlogを出力できます。

環境

RubyonRails: 5.0.3
Ruby: 2.3.3

使い方

使い方は、logger.debugと記述し出力したいログを書くだけなので
とっても簡単です。

Controllerで使ってみる

以下は、Controller内のif文の中にlogを仕込む例です。

logger.debugの使い方の例:1
def index
  if true then
     logger.debug("if文の中に入りました")
  end
end
log/development.logに出力されたlog
if文の中に入りました

Viewで使ってみる

logger.debugはViewに仕込むことも可能です。
以下は、View内にlogを仕込む例です。

logger.debugの使い方の例:2
<% logger.debug("このページは読み込まれています") %>
log/development.logに出力されたlog
このページは読み込まれています

インスタンス変数を出力してみる

logger.debugで出力できるものは、文字だけではありません。
@testのようなインスタンス変数も出力できます。
以下は、インスタンス変数の中身を出力する例です。

logger.debugの使い方の例:3
@test = Test.all
logger.debug(@test)
log/development.logに出力されたlog
<Test::ActiveRecord_Relation:0x007f16ec445390>

inspectをつけたら
わかりやすく中身を表示することが可能です。
個人的には、inspectを付けて使うことが多いです。

logger.debugの使い方の例:4
@test = Test.all
logger.debug(@test.inspect)
log/development.logに出力されたlog
#<ActiveRecord::Relation [#<Test id: 1, name: "hoge">, #<Test id: 2, name: "fuga">]>

以上です。

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
What you can do with signing up
147