mirror of
https://github.com/samsonjs/grape_logging.git
synced 2026-04-27 14:57:40 +00:00
Logstash formatter for grape_logging (#31)
* Logstash formatter for grape_logging * Additional host parameter for Logstash
This commit is contained in:
parent
e953a23d25
commit
1fd4d6655f
3 changed files with 39 additions and 1 deletions
|
|
@ -2,11 +2,13 @@ require 'grape_logging/multi_io'
|
||||||
require 'grape_logging/version'
|
require 'grape_logging/version'
|
||||||
require 'grape_logging/formatters/default'
|
require 'grape_logging/formatters/default'
|
||||||
require 'grape_logging/formatters/json'
|
require 'grape_logging/formatters/json'
|
||||||
|
require 'grape_logging/formatters/logstash'
|
||||||
require 'grape_logging/loggers/base'
|
require 'grape_logging/loggers/base'
|
||||||
require 'grape_logging/loggers/response'
|
require 'grape_logging/loggers/response'
|
||||||
require 'grape_logging/loggers/filter_parameters'
|
require 'grape_logging/loggers/filter_parameters'
|
||||||
require 'grape_logging/loggers/client_env'
|
require 'grape_logging/loggers/client_env'
|
||||||
require 'grape_logging/loggers/request_headers'
|
require 'grape_logging/loggers/request_headers'
|
||||||
|
require 'grape_logging/loggers/logstash'
|
||||||
require 'grape_logging/reporters/active_support_reporter'
|
require 'grape_logging/reporters/active_support_reporter'
|
||||||
require 'grape_logging/reporters/logger_reporter'
|
require 'grape_logging/reporters/logger_reporter'
|
||||||
require 'grape_logging/timings'
|
require 'grape_logging/timings'
|
||||||
|
|
|
||||||
35
lib/grape_logging/formatters/logstash.rb
Normal file
35
lib/grape_logging/formatters/logstash.rb
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
module GrapeLogging
|
||||||
|
module Formatters
|
||||||
|
class Logstash
|
||||||
|
def call(severity, datetime, _, data)
|
||||||
|
{
|
||||||
|
:'@timestamp' => datetime.iso8601,
|
||||||
|
:'@version' => '1',
|
||||||
|
:severity => severity
|
||||||
|
}.merge!(format(data)).to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def format(data)
|
||||||
|
if data.is_a?(Hash)
|
||||||
|
data
|
||||||
|
elsif data.is_a?(String)
|
||||||
|
{ message: data }
|
||||||
|
elsif data.is_a?(Exception)
|
||||||
|
format_exception(data)
|
||||||
|
else
|
||||||
|
{ message: data.inspect }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def format_exception(exception)
|
||||||
|
{
|
||||||
|
exception: {
|
||||||
|
message: exception.message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -58,7 +58,8 @@ module GrapeLogging
|
||||||
},
|
},
|
||||||
method: request.request_method,
|
method: request.request_method,
|
||||||
path: request.path,
|
path: request.path,
|
||||||
params: request.params
|
params: request.params,
|
||||||
|
host: request.host
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue