Class: Hiera::Backend::Eyaml::LoggingHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/hiera/backend/eyaml/logginghelper.rb

Class Method Summary collapse

Class Method Details

.colorize(message, color) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 57

def self.colorize(message, color)
  suffix = "\e[0m"
  prefix = case color
           when :red
             "\e[31m"
           when :green
             "\e[32m"
           when :blue
             "\e[34m"
           else # :white
             "\e[0m"
           end
  "#{prefix}#{message}#{suffix}"
end

.debug(messageinfo) ⇒ Object



36
37
38
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 36

def self.debug(messageinfo)
  print_message({ message: structure_message(messageinfo), hiera_loglevel: :debug, cli_color: :green, threshold: 1 })
end

.hiera?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 72

def self.hiera?
  'hiera'.eql? Eyaml::Options[:source]
end

.info(messageinfo) ⇒ Object



32
33
34
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 32

def self.info(messageinfo)
  print_message({ message: structure_message(messageinfo), hiera_loglevel: :debug, cli_color: :white, threshold: 0 })
end


44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 44

def self.print_message(args)
  message        = args[:message] ||= ''
  hiera_loglevel = args[:hiera_loglevel] ||= :debug
  cli_color      = args[:cli_color] ||= :blue
  threshold      = args[:threshold]

  if hiera?
    Hiera.send(hiera_loglevel, message) if threshold.nil? or Eyaml.verbosity_level > threshold
  elsif threshold.nil? or Eyaml.verbosity_level > threshold
    STDERR.puts self.colorize( message, cli_color )
  end
end

.structure_message(messageinfo) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 8

def self.structure_message(messageinfo)
  message = { from: 'hiera-eyaml-core' }
  case messageinfo.class.to_s
  when 'Hash'
    message.merge!(messageinfo)
  else
    message.merge!({ msg: messageinfo.to_s })
  end
  message[:prefix] = "[#{message[:from]}]"
  message[:spacer] = " #{' ' * message[:from].length} "
  formatted_output = message[:msg].split("\n").each_with_index.map do |line, index|
    if index == 0
      "#{message[:prefix]} #{line}"
    else
      "#{message[:spacer]} #{line}"
    end
  end
  formatted_output.join "\n"
end

.trace(messageinfo) ⇒ Object



40
41
42
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 40

def self.trace(messageinfo)
  print_message({ message: structure_message(messageinfo), hiera_loglevel: :debug, cli_color: :blue, threshold: 2 })
end

.warn(messageinfo) ⇒ Object



28
29
30
# File 'lib/hiera/backend/eyaml/logginghelper.rb', line 28

def self.warn(messageinfo)
  print_message({ message: structure_message(messageinfo), hiera_loglevel: :warn, cli_color: :red })
end