Update README.md
A clean way to resolve redundant log when using Rails + Grape
This commit is contained in:
parent
9023f78639
commit
dd21d160e9
20
README.md
20
README.md
|
@ -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
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue