Class: KubernetesDeploy::FormattedLogger

Inherits:
Logger
  • Object
show all
Includes:
DeferredSummaryLogging
Defined in:
lib/kubernetes-deploy/formatted_logger.rb

Instance Attribute Summary

Attributes included from DeferredSummaryLogging

#summary

Class Method Summary collapse

Methods included from DeferredSummaryLogging

#blank_line, #heading, #initialize, #phase_heading, #print_summary, #reset

Class Method Details

.build(namespace = nil, context = nil, stream = $stderr, verbose_prefix: false) ⇒ Object

[View source]

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/kubernetes-deploy/formatted_logger.rb', line 14

def self.build(namespace = nil, context = nil, stream = $stderr, verbose_prefix: false)
  l = new(stream)
  l.level = level_from_env

  middle = if verbose_prefix
    if namespace.blank?
      raise ArgumentError, 'Must pass a namespace if logging verbosely'
    end
    if context.blank?
      raise ArgumentError, 'Must pass a context if logging verbosely'
    end

    "[#{context}][#{namespace}]"
  end

  l.formatter = proc do |severity, datetime, _progname, msg|
    colorized_line = ColorizedString.new("[#{severity}][#{datetime}]#{middle}\t#{msg}\n")

    case severity
    when "FATAL"
      ColorizedString.new("[#{severity}][#{datetime}]#{middle}\t").red + "#{msg}\n"
    when "ERROR"
      colorized_line.red
    when "WARN"
      colorized_line.yellow
    else
      colorized_line
    end
  end
  l
end

.indent_four(str) ⇒ Object

[View source]

10
11
12
# File 'lib/kubernetes-deploy/formatted_logger.rb', line 10

def self.indent_four(str)
  "    " + str.to_s.gsub("\n", "\n    ")
end