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">]>
以上です。