2

为什么

Rack 的请求日志默认输出到 stderr 是否有原因?如果我没记错的话,请求日志是 Rack::CommonLogger,根据 RDoc:

将每个请求转发给给定的应用程序,并以 Apache 通用日志格式将一行记录到记录器,或默认为 rack.errors。

拥有访问错误请求日志而不是将所有内容推送到 rack.errors 不是更有意义吗?

如何

如何将请求日志重定向到文件?我遇到的所有示例都是专门针对 sinatra 的。可以完全禁用吗?(重定向到 /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 回答