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