禁用 Sinatra 标准输出

Disable Sinatra standard output

出于安全原因,我不希望 Sinatra 在标准输出中每请求 URL 打印一次,我尝试使用 set :logging, false,如 this answer 中所建议的那样:

class SweetAppName< Sinatra::Base
    set :show_exceptions, false
    set :environment, :production
    set :logging, false

然而,当我 运行 使用 rackup 和 thin 的应用程序时,我仍然看到请求记录到终端:

127.0.0.1 - - [26/May/2015:09:32:34 -0700] "GET /not-a-real-url HTTP/1.0" 404 - 0.0452

如何关闭这些功能?

如果您使用 rackupRack will add some middleware, including logging 启动您的应用。您可以通过对 rackup 使用安静选项(-q--quiet)来防止这种情况,即从命令行:

$ rackup -q

如果需要,您可以在 config.ru 中包含此选项,这样您就不必在每次启动应用程序时都记住输入它。 first line that starts with #\ is parsed as options,所以你可以有这样的 config.ru

#\ --quiet

# other middleware etc...
run SweetAppName

如果您使用经典的 Sinatra 应用程序样式,则需要添加 set :logging, false 行,否则 Sinatra 将添加自己的日志记录。对于模块化样式(就像您在问题中使用的那样),此设置默认为 false,因此您不需要它。