3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/plsql/log_subscriber.rb', line 3
def procedure_call(event)
return unless logger && (logger.debug? || uncaught_exception?(event.payload[:error]))
payload = event.payload
name = 'PL/SQL Procedure call (%.1fms)' % event.duration
sql = payload[:sql].strip
if payload[:arguments].empty?
arguments = nil
elsif payload[:arguments].size == 1 && Hash === payload[:arguments].first
arguments = ' ' + payload[:arguments].first.inspect
else
arguments = ' ' + payload[:arguments].inspect
end
if event.payload[:error]
exception = "Error occurred: %s\n%s" %
[event.payload[:error].class, event.payload[:error].message.split("\n").map{|l| " #{l}"}.join("\n")]
name = color(name, RED, true)
exception = color(exception, RED, true)
sql = color(sql, nil, true)
error " #{name} #{sql}#{arguments}\n #{exception}"
else
name = color(name, YELLOW, true)
sql = color(sql, nil, true)
debug " #{name} #{sql}#{arguments}"
end
end
|