Class: Faraday::LogfmtLogger::Middleware

Inherits:
Response::Middleware
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/faraday/logfmt_logger/middleware.rb

Constant Summary collapse

DEFAULT_OPTIONS =
{ headers: true, bodies: false }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(app, logger = nil, options = {}) {|_self| ... } ⇒ Middleware

Returns a new instance of Middleware.

Yields:

  • (_self)

Yield Parameters:



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/faraday/logfmt_logger/middleware.rb', line 12

def initialize(app, logger = nil, options = {})
  super(app)
  @logger = logger || begin
    require "logger"
    ::Logger.new($stdout)
  end

  @filter = []
  @options = DEFAULT_OPTIONS.merge(options)
  yield self if block_given?
end

Instance Method Details

#call(env) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/faraday/logfmt_logger/middleware.rb', line 26

def call(env)
  info("request") do
    log_entry = {
      source: "upstream-request",
      method: env.method.upcase,
      url: apply_filters(env.url.to_s),
      request_id: request_id,
    }.merge()

    Twingly::StringUtilities.logfmt(log_entry)
  end
  debug_log_request(env)
  super
end

#filter(filter_word, filter_replacement) ⇒ Object

rubocop:disable all



58
59
60
# File 'lib/faraday/logfmt_logger/middleware.rb', line 58

def filter(filter_word, filter_replacement)
  @filter.push([ filter_word, filter_replacement ])
end

#on_complete(env) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/faraday/logfmt_logger/middleware.rb', line 41

def on_complete(env)
  info("response") do
    log_entry = {
      source: "upstream-response",
      status: env.status,
      request_id: request_id,
    }.merge()

    Twingly::StringUtilities.logfmt(log_entry)
  end
  debug_log_response(env)
end