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 ```ruby
# config/application.rb # config/application.rb
config.middleware.delete 'Rails::Rack::Logger' config.middleware.swap Rails::Rack::Logger, ApiLogger
config.middleware.insert_after 'ActionDispatch::RequestId', 'SelectiveLogger'
# config/initializers/selective_logger.rb
class SelectiveLogger # app/middleware/api_logger.rb
def initialize(app) class ApiLogger < Rails::Rack::Logger
def initialize(app, opts = {})
@app = app @app = app
super
end end
def call(env) def call(env)
if env['PATH_INFO'] =~ %r{^/api} if grape_request?(env)
@app.call(env) @app.call(env)
else else
Rails::Rack::Logger.new(@app).call(env) super(env)
end end
end end
private
def grape_request?(env)
env['PATH_INFO'] =~ %r{^/api}
end
end end
``` ```