我搞不清楚如何用Sinatra记录信息.我不想记录请求,而是想在我的应用程序的某些点上定制消息.例如,在获取URL时,我希望记录"Fetching #{url}".

以下是我想要的:

  • 能够指定日志(log)级别(例如:logger.info("Fetching #{url}"))
  • 在开发和测试环境中,消息将被写入控制台.
  • 在生产中,只写出与当前日志(log)级别匹配的消息.

我猜这很容易在config.ru分钟内完成,但我不确定要启用哪个设置,以及是否必须自己手动创建Logger对象(此外,要使用哪个Logger类:LoggerRack::LoggerRack::CommonLogger).

(我知道在StackOverflow上也有类似的问题,但似乎没有一个能直接回答我的问题.如果你能给我指出一个现有的问题,我将把这个问题标记为重复问题).

推荐答案

Sinatra 1.3将附带这样一个记录器对象,完全可以如上所述使用.您可以使用edge Sinatra,如"The Bleeding Edge"中所述.我想在我们发布1.3之前不会太久.

要与Sinatra 1.2一起使用,请执行以下操作:

require 'sinatra'
use Rack::Logger

helpers do
  def logger
    request.logger
  end
end

Ruby相关问答推荐

数组上的Ruby#unionreact 非常奇怪

有没有办法向用户返回 nil 消息但不中断 ruby​​ 中的应用程序?

如何解密在 sjcl.js 中使用 ruby​​ 创建的 AES-256-GCM

从 ruby​​ 脚本运行另一个 ruby​​ 脚本

Ruby 中的 class() 与 type()

如何从 Gemfile 安装 gem?

使用 Homebrew 安装 Ruby

按可能为 nil 的属性对对象的 ruby​​ 数组进行排序

在 Ruby 中将多个代码块作为参数传递

仅针对特定参数的 Rspec 存根方法

如何在没有 Rails 的情况下使用 RSpec?

如何在 RSpec 2 中自动加载 spec_helper.rb

什么是匹配不在行尾的字符串的正则表达式?

获取类中声明的所有实例变量

处理来自 Net::HTTP 的异常的最佳方法是什么?

对哈希中数组的值求和

如何转换 Ruby 哈希,使其所有键都是符号?

如何在 Ruby 中重命名文件?

Integer 和 Fixnum 有什么区别?

如何使用 Ruby-Rails 删除文件夹的所有内容?