禁用Sinatra标准输出

时间:2015-05-27 00:44:35

标签: ruby sinatra

出于安全原因,我不希望Sinatra打印标准输出中所请求的每个网址,我已尝试使用this answer中建议的set :logging, false使用:

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]&#34; GET / not-a-real-url HTTP / 1.0&#34; 404 - 0.0452

如何关闭它们?

1 个答案:

答案 0 :(得分:9)

如果您使用rackupRack will add some middleware, including logging启动应用。您可以使用安静选项(-q--quiet)到rackup,即从命令行使用

来防止这种情况发生
$ 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,因此您不需要它。