Module: Rbcli::Logger

Defined in:
lib/rbcli/features/logging.rb

Class Method Summary collapse

Class Method Details

.logObject



84
85
86
# File 'lib/rbcli/features/logging.rb', line 84

def self.log
  @logger || self.make_logger
end

.make_loggerObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/rbcli/features/logging.rb', line 64

def self.make_logger
  if Rbcli::config[:logger][:log_target].nil?
    target = '/dev/null'
  elsif Rbcli::config[:logger][:log_target].downcase == 'stdout'
    target = STDOUT
  elsif Rbcli::config[:logger][:log_target].downcase == 'stderr'
    target = STDERR
  else
    target = Rbcli::config[:logger][:log_target]
  end
  @logger = Logger.new(target)
  @logger.level = Rbcli::config[:logger][:log_level]

  original_formatter = Logger::Formatter.new
  @logger.formatter = proc do |severity, datetime, progname, msg|
    original_formatter.call(severity, datetime, progname || caller_locations[3].path.split('/')[-1], msg.dump)
  end
  @logger
end

.save_defaults(level: nil, target: nil) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rbcli/features/logging.rb', line 47

def self.save_defaults level: nil, target: nil
  @default_level = level if level
  @default_target = target if target

  Rbcli::Config::add_categorized_defaults :logger, 'Log Settings', {
      log_level: {
          description: '0-5, or DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN. Set to null (~) to disable logging.',
          value: @default_level || nil
      },
      log_target: {
          description: 'STDOUT, STDERR, or a file path. Set to null (~) to disable logging.',
          value: @default_target || nil
      }
  }
end