2

どうして

Rack のリクエスト ログがデフォルトで stderr に出力される理由はありますか? 私が間違っていなければ、RDoc によると、リクエスト ログは Rack::CommonLogger です。

指定されたアプリにすべてのリクエストを転送し、Apache 共通ログ形式の行をロガー (デフォルトでは rack.errors) に記録します。

すべてをrack.errorsにプッシュするのではなく、アクセスとエラーのリクエストログを保持する方が理にかなっていませんか?

どのように

リクエストログをファイルにリダイレクトするにはどうすればよいですか? 私が遭遇したすべての例は、シナトラ専用です。完全に無効にすることはできますか?(/dev/null にリダイレクトしますか?)

4

1 に答える 1

1

同じ質問があります。しかし、私はこのロガーを少しハックして、好きなようにロガーを切り替えます。

あなたはここでコードを見ることができます:

http://github.com/shingara/sinatra-request-logger/blob/master/lib/sinatra/request-logger.rb

Rack :: CommonLoggerは、データがある場合はrack.errorsを使用します。デフォルトではStringIOです。したがって、ロガーを中に入れることはできません。ロガーを配置するには、プロキシを作成する必要があります。

于 2010-07-06T08:01:46.187 に答える