Edited at

Railsでlogを出力しdebugする

More than 1 year has passed since last update.


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">]>


以上です。