mirror of
https://github.com/samsonjs/grape_logging.git
synced 2026-03-25 08:55:47 +00:00
Add log_level option (#39)
This commit is contained in:
parent
4ca6823d36
commit
2a0c368551
4 changed files with 27 additions and 4 deletions
12
README.md
12
README.md
|
|
@ -78,6 +78,18 @@ log_file.sync = true
|
|||
logger Logger.new GrapeLogging::MultiIO.new(STDOUT, log_file)
|
||||
```
|
||||
|
||||
### Set the log level
|
||||
|
||||
You can control the level used to log. The default is `info`.
|
||||
|
||||
```ruby
|
||||
class MyAPI < Grape::API
|
||||
use GrapeLogging::Middleware::RequestLogger,
|
||||
logger: logger,
|
||||
log_level: 'debug'
|
||||
end
|
||||
```
|
||||
|
||||
### Logging via Rails instrumentation
|
||||
|
||||
You can choose to not pass the logger to ```grape_logging``` but instead send logs to Rails instrumentation in order to let Rails and its configured Logger do the log job, for example.
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ module GrapeLogging
|
|||
@reporter = if options[:instrumentation_key]
|
||||
Reporters::ActiveSupportReporter.new(@options[:instrumentation_key])
|
||||
else
|
||||
Reporters::LoggerReporter.new(@options[:logger], @options[:formatter])
|
||||
Reporters::LoggerReporter.new(@options[:logger], @options[:formatter], @options[:log_level])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
module Reporters
|
||||
class LoggerReporter
|
||||
def initialize(logger, formatter)
|
||||
def initialize(logger, formatter, log_level)
|
||||
@logger = logger || Logger.new(STDOUT)
|
||||
@log_level = log_level || :info
|
||||
if @logger.respond_to?(:formatter=)
|
||||
@logger.formatter = formatter || @logger.formatter || GrapeLogging::Formatters::Default.new
|
||||
end
|
||||
end
|
||||
|
||||
def perform(params)
|
||||
@logger.info params
|
||||
@logger.send(@log_level, params)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -38,6 +38,16 @@ describe GrapeLogging::Middleware::RequestLogger do
|
|||
end
|
||||
end
|
||||
|
||||
%w[info error debug].each do |level|
|
||||
context "with level #{level}" do
|
||||
it 'should log at correct level' do
|
||||
options[:log_level] = level
|
||||
expect(logger).to receive(level)
|
||||
subject
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a nil response' do
|
||||
let(:app) { proc{ [500, {} , nil] } }
|
||||
it 'should log "fail" instead of a status' do
|
||||
|
|
|
|||
Loading…
Reference in a new issue