Update README.md

A clean way to resolve redundant log when using Rails + Grape
This commit is contained in:
Yunzheng 2016-05-10 18:10:11 +08:00
parent 9023f78639
commit dd21d160e9
1 changed files with 13 additions and 7 deletions

View File

@ -63,22 +63,28 @@ by switching around some middleware. For example:
```ruby
# config/application.rb
config.middleware.delete 'Rails::Rack::Logger'
config.middleware.insert_after 'ActionDispatch::RequestId', 'SelectiveLogger'
config.middleware.swap Rails::Rack::Logger, ApiLogger
# config/initializers/selective_logger.rb
class SelectiveLogger
def initialize(app)
# app/middleware/api_logger.rb
class ApiLogger < Rails::Rack::Logger
def initialize(app, opts = {})
@app = app
super
end
def call(env)
if env['PATH_INFO'] =~ %r{^/api}
if grape_request?(env)
@app.call(env)
else
Rails::Rack::Logger.new(@app).call(env)
super(env)
end
end
private
def grape_request?(env)
env['PATH_INFO'] =~ %r{^/api}
end
end
```