9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/kiev/request_logger.rb', line 9
def wrap_request_logger(event, **data, &_block)
began_at = Time.now
error = nil
begin
return_value = yield
rescue StandardError => e
error = e
end
begin
data[:request_duration] = ((Time.now - began_at) * 1000).round(3)
if error
data[:error_class] = error.class.name
data[:error_message] = error.message[0..5000]
data[:error_backtrace] = Array(error.backtrace).join(NEW_LINE)[0..5000]
data[:level] = LOG_ERROR
end
Kiev.event(event, data)
ensure
raise error if error
return_value
end
end
|