Class: MiqDevUtil::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/miq_dev_util/logger.rb

Overview

A utility class to write information to the ManageIQ logs.

Instance Method Summary collapse

Constructor Details

#initialize(evm, method_name) ⇒ Logger

Returns a new instance of Logger.



4
5
6
7
8
# File 'lib/miq_dev_util/logger.rb', line 4

def initialize(evm, method_name)
  @evm = evm
  @method_name = method_name
  @dump_log_level = :info
end

Instance Method Details

#dump_associations(my_object, my_object_name) ⇒ Object

Write the associations of the given object to the log with a prefix of my_object_name to make finding the entries a little easier.



30
31
32
33
34
35
36
37
38
39
# File 'lib/miq_dev_util/logger.rb', line 30

def dump_associations(my_object, my_object_name)
  if my_object.respond_to?("associations")
    self.log(@dump_log_level, "Begin #{my_object_name}.associations")
    my_object.associations.sort.each { |a| self.log(:info, "#{my_object_name} Association - #{a}")}
    self.log(@dump_log_level, "End #{my_object_name}.associations")
    self.log(@dump_log_level, "")
  else
    self.log(@dump_log_level, "No associations for #{my_object_name}")
  end
end

#dump_attributes(my_object, my_object_name) ⇒ Object

Write the attributes of the given object to the log with a prefix of my_object_name to make finding the entries a little easier.



17
18
19
20
21
22
23
24
25
26
# File 'lib/miq_dev_util/logger.rb', line 17

def dump_attributes(my_object, my_object_name)
  if my_object.respond_to?("attributes")
    self.log(@dump_log_level, "Begin #{my_object_name}.attributes")
    my_object.attributes.sort.each { |k, v| self.log(:info, "#{my_object_name} Attribute - #{k}: #{v}")}
    self.log(@dump_log_level, "End #{my_object_name}.attributes")
    self.log(@dump_log_level, "")
  else
    self.log(@dump_log_level, "No attributes for #{my_object_name}")
  end
end

#dump_info(my_object, my_object_name) ⇒ Object

A shortcut for dumping multiple types of information about the given object.



55
56
57
58
59
# File 'lib/miq_dev_util/logger.rb', line 55

def dump_info(my_object, my_object_name)
  self.dump_attributes(my_object, my_object_name)
  self.dump_associations(my_object, my_object_name)
  self.dump_virtual_columns(my_object, my_object_name)
end

#dump_rootObject

A shortcut to dump the $evm.root object.



62
63
64
# File 'lib/miq_dev_util/logger.rb', line 62

def dump_root()
  self.dump_info(@evm.root, "$evm.root")
end

#dump_virtual_columns(my_object, my_object_name) ⇒ Object

Write the virtual columns of the given object to the log with a prefix of my_object_name to make finding the entries a little easier.



43
44
45
46
47
48
49
50
51
52
# File 'lib/miq_dev_util/logger.rb', line 43

def dump_virtual_columns(my_object, my_object_name)
  if my_object.respond_to?("virtual_column_names")
    self.log(@dump_log_level, "Begin #{my_object_name}.virtual_columns")
    my_object.virtual_column_names.sort.each { |vcn| self.log(:info, "#{my_object_name} Virtual Column - #{vcn}")}
    self.log(@dump_log_level, "End #{my_object_name}.virtual_columns")
    self.log(@dump_log_level, "")
  else
    log(@dump_log_level, "No virtual_columns for #{my_object_name}")
  end
end

#log(level, message) ⇒ Object

Write message to the logging system with the given logging level.



11
12
13
# File 'lib/miq_dev_util/logger.rb', line 11

def log(level, message)
  @evm.log(level, "#{@method_name} - #{message}")
end