Использование промежуточного программного обеспечения стойки в приложении Sinatra на основе классов с асинхронным запросом

Я пытаюсь регистрировать асинхронные запросы в своем приложении Sinatra. Я использую Sinatra Synchrony, который отлично работает, но я не вижу никакой информации о моем запросе. В этом посте показано решение этой проблемы, но, к сожалению, мой новичок не может чтобы заставить его работать!

app.rb

require_relative 'logger' # middleware

class MyApp < Sinatra::Base
  register Sinatra::Synchrony # async http requests up in this!
  use Logger::Middleware
  ...
end

При распаковке получаю:

/Users/nflacco/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/logger.rb:197:in `<top (required)>': Logger is not a class (TypeError)

Я немного осмотрелся, но не нашел быстрого ответа об использовании промежуточного программного обеспечения с приложением Sinatra на основе классов. Спасибо!


Обновление: я немного возился с Rack:CommonLogger и заставил его показывать мои запросы к серверу (даже с синхронизацией sinatra), но ничего не записывалось в файл. Хммммм.

app.rb

  configure do
    Dir.mkdir('log') unless File.exists?('log')
    use Rack::CommonLogger, Logger.new('log/elphi-api.log')
  end

person nflacco    schedule 15.06.2012    source источник
comment
Вы реализуете отдельный класс Logger, который находится в logger.rb?   -  person Kashyap    schedule 15.06.2012
comment
Нет, это модуль с классом внутри, который называется Logger.   -  person nflacco    schedule 15.06.2012
comment
Позвольте мне уточнить - в другом посте это модуль под названием Logger, который содержит класс под названием Middleware.   -  person nflacco    schedule 15.06.2012
comment
Что касается вашего обновления, этот пост может помочь stackoverflow.com/questions/2239240/   -  person Kashyap    schedule 16.06.2012