There's an echo in my head

日々のメモ。

Sinatraのエラーとかログまわりの設定

Sinatra: Configurationから抜粋。なお、デフォルト値についてはSinatra::Baseのサブクラスを作った場合の値を記載。

logging

有効になっている場合、STDERRにApache Common Log形式でリクエストのログを書きだす。デフォルトでfalse

dump_errors

有効になっている場合、STDERRに例外のバックトレースを書き出す。デフォルトでは!test?、つまりtest環境ではfalseでそれ以外ではtrue

show_exceptions

raise_errors

メモ

handle_exception!を読むとbefore以降で投げられた例外がcodeメソッドを持ち、かつその返り値が400..599の場合にはその値がステータスコードに使われる。

なので独自のステータスコードをExceptionのサブクラスのcodeに持たせる場合は600以上を使う必要がある。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。