mirror of
https://github.com/meineerde/rackstash.git
synced 2025-10-17 14:01:01 +00:00
Log the original event to the error_flow if Flow#write raises an error
This commit is contained in:
parent
0967593010
commit
26a1ce0a68
@ -345,7 +345,7 @@ module Rackstash
|
||||
@adapter.write @encoder.encode(event)
|
||||
true
|
||||
rescue Exception => exception
|
||||
log_error("write failed for adapter #{adapter.inspect}", exception)
|
||||
log_error("write failed for adapter #{adapter.inspect}", exception, event)
|
||||
raise unless exception.is_a?(StandardError)
|
||||
raise if synchronous?
|
||||
end
|
||||
@ -354,7 +354,7 @@ module Rackstash
|
||||
|
||||
private
|
||||
|
||||
def log_error(message, exception)
|
||||
def log_error(message, exception, event = nil)
|
||||
message = Rackstash::Message.new(message, severity: ERROR)
|
||||
|
||||
error_event = {
|
||||
@ -366,6 +366,8 @@ module Rackstash
|
||||
FIELD_MESSAGE => [message],
|
||||
FIELD_TIMESTAMP => message.time
|
||||
}
|
||||
error_event['event'] = event unless event.nil?
|
||||
|
||||
error_flow.write(error_event)
|
||||
rescue
|
||||
# At this place, writing to the error log has also failed. This is a bad
|
||||
|
||||
@ -488,7 +488,8 @@ RSpec.describe Rackstash::Flow do
|
||||
'error_trace' => instance_of(String),
|
||||
'tags' => [],
|
||||
'message' => [instance_of(Rackstash::Message)],
|
||||
'@timestamp' => instance_of(Time)
|
||||
'@timestamp' => instance_of(Time),
|
||||
'event' => event
|
||||
)
|
||||
expect(adapter).to receive(:write).and_raise('ERROR')
|
||||
expect { flow.write(event) }.not_to raise_error
|
||||
@ -521,7 +522,8 @@ RSpec.describe Rackstash::Flow do
|
||||
'error_trace' => instance_of(String),
|
||||
'tags' => [],
|
||||
'message' => [instance_of(Rackstash::Message)],
|
||||
'@timestamp' => instance_of(Time)
|
||||
'@timestamp' => instance_of(Time),
|
||||
'event' => event
|
||||
)
|
||||
expect(adapter).to receive(:write).and_raise('ERROR')
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user