ログを出力しよう!Ruby on Railsのloggerの使い方【初心者向け】
Ruby on Railsでログを出力できる【logger】の使い方を初心者向けに解説した記事。コントローラー、モデル、ビューなどからログを出力することが可能。デバッグやアプリケーションの保守・運用で良く使われます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
RubyのフレームワークRailsで使うloggerの使い方について解説しています。
開発する中でエラーが起きてしまった場合ログを見ると、どこでエラーが起きたのか確認することができます。Railsでは、ログを出力する際loggerを使っていきます。
今回はloggerの使い方を勉強してみよう。
田島メンター!!loggerは何をするんですか〜?
loggerはログを出力するときに使うんだ。エラーが出たときなどに、どこで間違っているかというのを確認することができるよ。
なるほど、必要そうですね。お願いします!
loggerとは
loggerを使うことでrailsのコントローラー、モデル、ビューなどからログを出力することができます。
開発中のデバッグやアプリケーションの保守・運用で良く使われる機能です。
使い方は簡単で、ログを出力したい場所に次のように記述するだけです。
logger.debug(“ログに出力したい内容")
ログレベル
railsではログレベルを設定することで、loggerから出力する内容を制限することができます。
railsには次の5つのログレベルがあります。
fatal | 致命的なエラー |
error | エラー |
warn | 警告 |
info | 一般的な情報(通知) |
debug | デバック情報 |
ログレベルを設定するには、「config/development.rb」
、「config/test.rb」
、「config/production.rb」
内に次のように記載します。
config.log_level = :warn
設定したログレベルより低い(fatal > error > warn > info > debug)ログは出力されなくなります。
例えば、ログレベルをwarnに設定した場合infoとdebugはログに出力されなくなります。
ログレベルの各環境のデフォルト値は次の通りです。
development | debug |
test | debug |
production | info |
5つのログレベルの内容と、出力されるレベルの設定方法だよ。
ログレベルは上に行くほど深刻って感じですね。
次は実際に、どのようにloggerを設定するかという手順を見てみよう。
実際にloggerを書いてみよう
$ rails new sample_app $ cd sample_app $ rails generate scaffold User name:string $ rake db:migrate
logger.debug("[debug] users#index") logger.info("[info] users#index") logger.warn("[warn] users#index") logger.error("[error] users#index") logger.fatal("[fatal] users#index")
loggerを使う一連の流れを紹介したよ。
コントローラーに追記して、実行したときにコンソールを見ればいいんですね。
情報をログに保存することによってデバッグを行いやすくなるので、ぜひこれも覚えておこう。
分かりました。ありがとうございました!
[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。