rubyベストプラクティスchapter6.4
おぉ7月2回目の日記かぁ。。。
rubykaigi2011にもいってるから書こうと思えばネタあるのになぁ。。。
淡々と読書日記を書きます。
Loggerクラスの使い方
使いたいなぁと思いつつ、なんとなく使わずにすんでいたLoggerクラス。
ここにのっているStandarderror#reportをそのまま使うとエラーはく時のバックトレースがlogに記録されて便利。
class StandardError def report %{#{self.class}: #{message}\n#{backtrace.join("\n")}} end end
これを使ってエラーが発生しそうなところにbegin rescue endでかこってあげれば、rail
sのログっぽく出力される。
StandardErrorにメソッドを追加しているので、ほとんどのエラーでreportメソッドは使用出来る。
例えばこんな感じ。
def hoge # 何か処理 rescue StandardError => e #ここでエラーを捕捉 @logger.error(e.report) #ここでreportメソッドを使っている end
Loggerクラスってのはログを出力する時にはメソッドを起動してあげればいいんですな。
Logger#error #エラーのログ Logger#info #通常のログ Logger#fatal #???
本の中ではfatalってどうしようもないエラーみたいなあつかいだったけどどうなんでしょ?
fatalって「致命的な」とか「破壊的な」とかいう形容詞みたい。
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (43件) を見る