简单而理想的记录在Sinatra

abh*_*jit 4 logging rack sinatra

我经历了一些博客和网站,它们给了我一些关于如何登录sinatra的信息,但没有为我的应用程序工作,我还经历了一个名为sinatra-logger的宝石没有尝试过,想知道理想和简单的"登录"方式在sinatra.就像我们为rails做logger.info一样.

我试过并且没有工作的代码来自以下站点链接,并且一些SO链接也指向上面链接中使用的相同方法.

configure do
 LOGGER = Logger.new("sinatra.log")
end

helpers do
 def logger
  LOGGER
 end
end
Run Code Online (Sandbox Code Playgroud)

我已经在我的应用程序的app.rb中写了这个,它无法为App:Module说未定义的方法`configure'

任何指针或指南都会有所帮助.谢谢.

编辑 现在正在使用文件写入来记录我的错误和消息:

File.open('log.txt', 'a') do |f|
 f.write "#{status}-#{CONFIG.api_url}-#{data.inspect}-tweet}"
end
Run Code Online (Sandbox Code Playgroud)

Sea*_*ner 18

如果您使用的是Sinatra 1.3,您应该能够像使用rails一样进行日志记录 logger.info

以下内容复制自Sinatra自述文件:


记录

在请求范围中,记录器助手公开Logger实例:

get '/' do
  logger.info "loading data"
  # ...
end
Run Code Online (Sandbox Code Playgroud)

此记录器将自动考虑您的Rack处理程序的日志记录设置.如果禁用日志记录,此方法将返回一个虚拟对象,因此您不必担心路由和过滤器.

请注意,默认情况下只对Sinatra :: Application启用日志记录,因此如果您从Sinatra :: Base继承,您可能希望自己启用它:

 class MyApp < Sinatra::Base
   configure :production, :development do
     enable :logging
   end
 end
Run Code Online (Sandbox Code Playgroud)

要避免设置任何日志记录中间件,请将日志记录设置设置为nil.但是,请记住,在这种情况下,记录器将返回nil.一个常见的用例是您想要设置自己的记录器.Sinatra将使用它在env ['rack.logger']中找到的任何内容.


Rack :: CommonLogger在内部生成日志消息(我认为).