実行環境:
ruby 1.9.3
Rails 3.1.3
Rails3 でデバッグ用の文字列を書き出す方法。めっちゃ基本事項ですが、久々に Rails に触ったらまるっきり忘れていたのでメモ (^^;ruby 1.9.3
Rails 3.1.3
ログファイルに書き出す
Railsの実行時に処理されるコードの中でlogger.debug("ログに吐き出す文字列")と書いておけば、ログファイル(#{RAILS_ROOT}/log/**********.log)に書き出されます。
「************」の部分は実行モード名が入ります。
developmentモードならdevelopment.log、productionモードならproduction.logちうわけです。
ただし、デフォルトの設定だとproductionモードでは logger.debug は記録されません。
ログの内容にはレベルがありproductionモードでは実行に影響ないものは残さない、ということなのでしょう。
ログレベル
- logger.fatal
- logger.error
- logger.warn
- logger.info
- logger.debug
productionモードで無理やりlogger.debugをログに残す場合はproductionモードの環境設定ファイルで設定します。
config.log_level = :debug
オブジェクトの中身を記録する
デバッグしていると、このオブジェクトの中身はどうなっているんだろう?ってことがよくあります。文字列や数字の変数ならそのまま var.to_s や "%s"%var で文字列化してしまえばいいですが、オブジェクトでそれをやると #<ClassName:0xXXXXXXX> みたいな訳分からん文字になってしまいます。
そんなときは .inspect を使うと便利。
logger.debug(var.inspect)これまたド忘れしてたのでメモしておくのであります。
0 件のコメント:
コメントを投稿