Class: LogStash::Api::RackApp::ApiErrorHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/api/rack_app.rb

Constant Summary collapse

LOG_MESSAGE =
"Internal API server error".freeze

Instance Method Summary collapse

Constructor Details

#initialize(app, logger) ⇒ ApiErrorHandler

Returns a new instance of ApiErrorHandler.



51
52
53
54
# File 'lib/logstash/api/rack_app.rb', line 51

def initialize(app, logger)
  @app = app
  @logger = logger
end

Instance Method Details

#call(env) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/logstash/api/rack_app.rb', line 56

def call(env)
  @app.call(env)
rescue => e
  body = RackApp.(500, env).
           merge({
                   :error => "Unexpected Internal Error",
                   :class => e.class.name,
                   :message => e.message,
                   :backtrace => e.backtrace
                 })

  @logger.error(LOG_MESSAGE, body)

  [500,
   {'Content-Type' => 'application/json'},
   [LogStash::Json.dump(body)]
  ]
end