12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/yawl/log.rb', line 12
def log_measure(data)
if Config.app
measure_base = "#{Config.app}.#{data[:ns]}.#{data[:fn]}"
else
measure_base = "#{data[:ns]}.#{data[:fn]}"
end
begin
t0 = Time.now
log(data.merge(at: "start"))
log_control = OpenStruct.new(data.merge(finish_at: "finish"))
result = yield(log_control)
log(data.merge("measure##{measure_base}.#{log_control.finish_at}" => elapsed_since(t0), at: log_control.finish_at))
result
rescue => error
log(data.merge("measure##{measure_base}.exception" => elapsed_since(t0), at: "exception", "class" => error.class, message: error.message))
raise error
end
end
|