フリーエンジニアの長瀬です。今回はlogger(ロガー)の使い方について一緒に学んでいきましょう。loggerを使えば、Railsで簡単にログを出力できます。・ログの色付けを行う方法といった応用的な内容についても解説していきます。まとめloggerとはloggerはログを出力するために、Railsにあらかじめ用意されている機能です。loggerの機能はActiveSupportクラスを継承したLoggerクラスによって構成されています。loggerを使えば、簡単にログを出力できます。バグの原因を探すときなどに便利です。loggerの設定方法loggerは・config/application.rb・config/evironments/development.rb・config/evironments/production.rb・config/evironments/test.rbのいずれかの初期設定ファイルであればconfig.〇〇〜で始まるコードで設定できます。記事の後半で説明しますが、どのファイルにloggerを設定するかで環境別にログの出力ができます。以下はlogger設定のサンプルコードです。Logger.new('log/development.log')でロガーを設定できます。Logger.new関数では第1引数にログを保存する場所を指定できます。STDOUTは標準出力にログを出力する場合の引数です。標準設定でのログの出力先はlog/development.logになっています。上記のように設定できれば、Model、Controller、Viewでログを出力できます。実際に出力してみましょう。以下、出力のサンプルコードです。"log/development.logにログが出力されています。%>また、log/development.log以外のファイルに保存したい場合は独自にLogger.newの引数にファイルの場所を指定できます。Logger.new('log/development_other.log')独自にファイルを指定し、保存した場合は出力する際のコードも変わります。以下、出力のサンプルコードです。"log/development_other.logにログが出力されています。%>これでlog/development_other.logに保存するログを保存することができました。このように、log/development.log以外のファイルにも簡単にログを保存できます。ログレベルを設定する方法loggerでは、ログにレベルを設定できます。ログレベルは以下6つあり、そのログの内容によって使い分けます。unknown(常にログとして出力される必要がある未知のメッセージ)fatal(プログラムをクラッシュさせる制御不可能なエラー)error(制御可能なエラー)warn(警告)info(システム管理についての一般的、または役に立つ情報)debug(開発者のための低いレベルの情報)ログレベルはunknown>fatal>error>warn>info>debugの順に出力が優先されます。ログレベルを設定するには・config/application.rb・config/evironments/development.rb・config/evironments/production.rb・config/evironments/test.rbのいずれかのファイルであれば以下のサンプルコードで設定できます。:fatalの場合、fatal以下のerror、warn、info、debugのレベルのログは出力されなくなります。:unknownの場合はログレベルがunknown以外は出力されなくなります。上記のファイル以外でログレベルを設定したい場合は以下のコードでできます。5Rails.logger.levelは0〜5までの数値でログレベルを設定します。番号に対応して0(debug)1(info)2(warn)3(error)4(fatal)5(unknown)となっています。次は、出力の際にログレベルを設定してみましょう。logger.〇〇の値をログレベルに応じて変更するだけです。以下は実際のレベル別でのログ出力のサンプルコードです。"log/development.logにdebugレベルでログが出力されています。"log/development.logにinfoレベルでログが出力されています。"log/development.logにwarnレベルでログが出力されています。"log/development.logにerrorレベルでログが出力されています。"log/development.logにfatalレベルでログが出力されています。"log/development.logにunknownレベルでログが出力されています。%>このように、ログレベルよってログの出力を制限して管理できます。ログレベルを設定しておくと、レベルに応じてログの出力を減らすことができて効率的です。環境ごとにログを設定するには、ログを設定するファイルを使い分けます。%>たとえば、上記のコードでログを出力するとき、フォーマットの設定がされていないなら実行結果log/development.logにレベルunkwnownでログが出力されましたと出力されます。ここで、標準の出力フォーマットを設定してみます。以下は標準の出力フォーマットを設定するコードです。log/development.logにレベルunkwnownでログが出力されましたと出力されるように変わります。先頭のAはANY(unknownレベル)のAです。+0900と出力されます。プログラム名はとくに設定されていないと空(=nil)のままです。+0900と出力されるように変わります。このように標準の出力が見にくいと感じている方は独自のフォーマットを設定してみてはいかがでしょうか。ログの色付けを行う方法ログに色をつけるにはcolorize(カラライズ)というgemを使うと便利です。installと打ち込んでcolorizeをインストールします。インストール後は文字列の後に.colorize(:色の名前)で、簡単にログに色をつけることができます。以下、色をつけるサンプルコードです。%>実行結果このようにログに色をつけることができました。colorizeで使用可能な色は下記の仕様書から参照しています。colorizeですので、色の種類はこちらを参考にしてください。背景色を設定もできます。%>実行結果このようにcolorize(:色の名前).on_色の名前で背景色を設定できました。まとめいかがでしたでしょうか?この記事では、loggerの使い方を解説しました。環境別にログを設定したり、ログレベルを設定したりすれば、ログの管理はしっかりできます。重要なログには色をつけて他と区別するのもいいですね。この機会にぜひ管理しやすいようにログを設定し直してみてはいかがでしょうか。loggerの使い方について忘れてしまったらこの記事を確認してくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。長瀬来Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど言語が好きで、英語や中国、ドイツ語を勉強しました。将来的には海外で生活したいです。Rails5やCocos2dxの勉強を主にしています。ライターとしてはできるだけ初心者にわかりやすい文章になるように心がけています。趣味は語学、読書です。