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


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

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


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

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

.hiera?Boolean

Returns:

  • (Boolean)

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

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

.info(messageinfo) ⇒ Object


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

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

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

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

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

.structure_message(messageinfo) ⇒ Object


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

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


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

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

.warn(messageinfo) ⇒ Object


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

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