class LoggingClass

Wrapper class for logging

Public Class Methods

new(name) click to toggle source

initialize class

# File lib/miq_utilities/logging.rb, line 22
def initialize(name)
  @initializer = name
  @notification = NotificationClass.new
end

Public Instance Methods

log(level:, message:, logtoscreenonly: false, notify: false, email_to: nil, email_from: nil, signature: nil, webhookurl: nil, subjecttype: nil, update_message: false) click to toggle source
# File lib/miq_utilities/logging.rb, line 27
def log(level:, message:, logtoscreenonly: false, notify: false, email_to: nil, email_from: nil, signature: nil, webhookurl: nil, subjecttype: nil, update_message: false)
  levelvalid = %w[info warn error debug].any? { |msglevel| level.upcase.include? msglevel.to_s.upcase }

  if $evm.nil? || logtoscreenonly
    puts "#{level}: #{@initializer} - #{message}"
  elsif levelvalid
    $evm.log(level, "#{@initializer} - #{message}")
    @task.message = message if @task && (level.casecmp('ERROR').zero? || update_message)
  else
    $evm.log('info', "#{@initializer} - #{message}")
  end

  # Notify - Only if flag (notify) is set to TRUE
  @notification.notify(event_level: level, event_message: message, email_to: email_to, email_from: email_from, signature: signature, webhookurl: webhookurl, subjecttype: subjecttype) if notify
rescue => err
  raise("Oopps! Something went wrong.\nDetails:<#{err}>")
end