ruby - 禁用 Sinatra 标准输出

标签 ruby sinatra

出于安全原因,我不希望 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

我怎样才能关闭这些?

最佳答案

如果您使用 rackup 启动您的应用程序,Rack 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,因此您不需要它。

关于ruby - 禁用 Sinatra 标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471322/

相关文章:

ruby - 定义一个继承自 Rack::Builder 的类

ruby-on-rails - 尝试运行 gem install 时出错

ruby - 在 Padrino/Datamapper 应用程序中读取 boolean 值时出现问题

ruby - 如何在 OSX 上正确更新系统 ruby​​ 版本到最新版本 (2.2.1)

ruby-on-rails - 如果更新时存在属性,Rails 如何仅调用自定义验证方法

ruby-on-rails - 错误率: Creating/Updating: Showing validation errors while preserving previous values

ruby - 在 ruby​​ 和 sinatra 中索引和搜索文本文件

ruby - 使用 Sinatra 提供 XHTML

ruby - Datamapper TEXT 默认限制为 65k 个字符——如何提高限​​制?

ruby - 通过多个文件将 Sinatra 用于更大的项目