Skip to content

Commit 4e22e7b

Browse files
committed
Copy RequestLogger from AutomationEngine
1 parent 203fbe0 commit 4e22e7b

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

lib/vmdb/loggers/request_logger.rb

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
module Vmdb::Loggers
2+
class RequestLogger < ManageIQ::Loggers::Base
3+
attr_reader :automation_log_wrapper
4+
5+
def initialize(*args, automation_log_wrapper:, **kwargs)
6+
@automation_log_wrapper = automation_log_wrapper
7+
super(*args, **kwargs)
8+
end
9+
10+
def self.create_log_wrapper(io = File::NULL)
11+
# We modify the interface of logger methods such as info/warn/etc. to allow the keyword argument
12+
# resource_id. Therefore, we need to wrap all client logger calls to these methods to process the resource_id,
13+
# cut the request_log entry and forward the remaining arguments to the logger.
14+
new(io, :progname => "automation", :automation_log_wrapper => Vmdb::Loggers.create_logger("automation.log"))
15+
end
16+
17+
private def add_to_db(severity, message = nil, progname = nil, resource_id: nil)
18+
return [severity, message, progname] unless resource_id
19+
20+
# Adapted from Logger#add
21+
severity ||= UNKNOWN
22+
if severity < level
23+
return [severity, message, progname]
24+
end
25+
if progname.nil?
26+
progname = @progname
27+
end
28+
if message.nil?
29+
if block_given?
30+
message = yield
31+
else
32+
message = progname
33+
progname = @progname
34+
end
35+
end
36+
37+
RequestLog.create(:message => message, :severity => format_severity(severity), :resource_id => resource_id) if resource_id
38+
39+
[severity, message, progname]
40+
end
41+
42+
def info(progname = nil, resource_id: nil, &block)
43+
severity, message, progname = add_to_db(INFO, nil, progname, resource_id: resource_id, &block)
44+
automation_log_wrapper.add(severity, message, progname, &block)
45+
add(severity, message, progname, &block)
46+
end
47+
48+
def debug(progname = nil, resource_id: nil, &block)
49+
severity, message, progname = add_to_db(DEBUG, nil, progname, resource_id: resource_id, &block)
50+
automation_log_wrapper.add(severity, message, progname, &block)
51+
add(severity, message, progname, &block)
52+
end
53+
54+
def warn(progname = nil, resource_id: nil, &block)
55+
severity, message, progname = add_to_db(WARN, nil, progname, resource_id: resource_id, &block)
56+
automation_log_wrapper.add(severity, message, progname, &block)
57+
add(severity, message, progname, &block)
58+
end
59+
60+
def error(progname = nil, resource_id: nil, &block)
61+
severity, message, progname = add_to_db(ERROR, nil, progname, resource_id: resource_id, &block)
62+
automation_log_wrapper.add(severity, message, progname, &block)
63+
add(severity, message, progname, &block)
64+
end
65+
66+
def fatal(progname = nil, resource_id: nil, &block)
67+
severity, message, progname = add_to_db(FATAL, nil, progname, resource_id: resource_id, &block)
68+
automation_log_wrapper.add(severity, message, progname, &block)
69+
add(severity, message, progname, &block)
70+
end
71+
72+
def unknown(progname = nil, resource_id: nil, &block)
73+
severity, message, progname = add_to_db(UNKNOWN, nil, progname, resource_id: resource_id, &block)
74+
automation_log_wrapper.add(severity, message, progname, &block)
75+
add(severity, message, progname, &block)
76+
end
77+
end
78+
end

0 commit comments

Comments
 (0)