【问题标题】:How to silence DataMapper in Sinatra如何在 Sinatra 中使 DataMapper 静音
【发布时间】:2012-09-19 07:30:00
【问题描述】:

所以,一个简单的小问题。每次我在我的“get”或“post”块中使用 DataMapper 执行一些事务时,我得到的输出看起来像这样......

core.local - - [19/Sep/2012:09:04:54 CEST] "GET /eval_workpiece/state?id=24 HTTP/1.1" 200 4
- -> /eval_workpiece/state?id=24

这对我来说有点太冗长了。我可以关闭此反馈吗?

【问题讨论】:

    标签: sinatra datamapper


    【解决方案1】:

    这不是 Datamapper 日志,这是由 WEBrick 服务器完成的日志,logs all requests using these two formats by default

    (请注意,这也不是机架日志记录,尽管 Rack::CommonLogger 使用相同(或至少非常相似)的格式)。

    阻止这种情况的最简单方法是切换到不添加自己的日志记录的另一台服务器,例如 Thin。

    如果您想继续使用 WEBrick,您需要找到一种方法从您的 Sinatra 应用程序中将选项传递给它。当前发布的 Sinatra gem (1.3.3) 不允许使用简单的方法来执行此操作,但 current master allows you to set the :server_options setting which Sinatra will then pass on。所以在未来你应该能够做到这一点:

    set :server_settings, {:AccessLog => []}
    

    为了让 WEBrick 保持沉默。

    目前,您可以在应用文件的末尾添加类似这样的内容(我假设您正在使用类似 ruby my_app_file.rb 的内容启动应用):

    disable :run
    Sinatra::Application.run! do |server|
      server.config[:AccessLog] = []
    end
    

    【讨论】:

      【解决方案2】:

      切断所有日志记录:

      DataMapper.logger = nil
      

      更改详细程度:

      DataMapper.logger.set_log(logger, :warn) # where logger is Sinatra's logging object
      

      其他级别为:fatal => 7, :error => 6, :warn => 4, :info => 3, :debug => 0 (http://rubydoc.info/gems/dm-core/1.1.0/DataMapper/Logger)

      【讨论】:

        【解决方案3】:

        如果您使用 ActiveSupport 运行,则可以使用内核扩展:

        quietly { perform_a_noisy_task }
        

        这会在块的持续时间内将 STDOUT 和 SDTERR 临时绑定到 /dev/null。由于您可能不想抑制 all 输出,理论上您可以这样做:

        with_warnings(:warn) { # or :fatal or :error or :info or :debug
          perform_a_noisy_task
        }
        

        并且适当的消息将被禁止。 (注意:我说 '理论上' 因为在我的 Padrino/DataMapper 环境中使用 with_warnings 给了我一个看似无关的错误。YMMV。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-14
          • 2011-07-14
          • 1970-01-01
          • 2012-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多