Liftでカスタムエラーページを表示する

Lift使ってて予期しない例外とか起きたとき、画面上にでれでれでれっとStackTraceが出ちゃいますよね。(Development Modeのとき。)
まあ、Production Modeであったとしても、カスタムエラーページを表示するにはどうすれば良いんだろうと思って調べたんです。
あんま情報ないような気がするんですけど。。

で、とりあえず捻出した方法が以下。

まず最初に、LiftRules.exceptionHandlerの記述をBoot.scalaに書きます。

    LiftRules.exceptionHandler.prepend { 
        case (Props.RunModes.Production, Req(path, "", GetRequest), e) => { 
            Log.error("Unexpected Exception")
            Log.error(e.fillInStackTrace)
            RedirectResponse("/error") 
        }
    }

これで、error.htmlを用意しておけばオーケー。
ただこれだと、Liftの処理系自体に問題があったり、テンプレートに問題があったりでエラーページ自体が処理できないと、

このウェブページにはリダイレクト ループが含まれています。

なんてブラウザがおっしゃるので、これも何とかしたいところ。
web.xmlの方で特殊な設定をすることも考えたのですが、今更そんなこともしたくないので考えたのが以下の方法。

まず、エラーページ出力用のメソッドを用意。ファイルを静的に読んで、StreamingResponseを返します。
(error.htmlの置き場所&内容は上記とは違いますよ、念のため)

  def sendErrorPage = {
     val file = new File("WEB-INF/error.html")
     val fis = new FileInputStream(file)
     StreamingResponse(
         fis,
         () => { fis.close },
         file.length,
         ("Content-Type" -> "text/html") :: Nil,
         Nil,
         503
     )
  }

んで、先程の RedirectResponse("/error") の代わりにこのメソッドを呼んでやります。
(それでも、error.htmlが読めなければ結局これも拾いきれないですけどね。。)

しかし、Liftって本当クセ強いよなぁ。。

もっとかっちょいい方法誰か知ってたら教えて下さい!!