Class: Rbcli::Logger
- Inherits:
-
Object
- Object
- Rbcli::Logger
- Defined in:
- lib/rbcli/components/logger/logger.rb
Overview
noinspection RubyClassVariableUsageInspection
Constant Summary collapse
- @@formatters =
{ display: Proc.new { |severity, _datetime, _progname, msg| severity == 'INFO' ? msg : "#{colorlevel(severity)}#{(' ' * (5 - severity.length))} || #{msg}" }, simple: Proc.new { |severity, _datetime, progname, msg| @max_prog_len = (@max_prog_len > progname.length) ? @max_prog_len : progname.length unless progname.nil? "#{colorlevel(severity)}#{(' ' * (5 - severity.length))} || #{progname || (' ' * @max_prog_len)} || #{msg}" }, full: Proc.new { |severity, datetime, progname, msg| @max_prog_len = (@max_prog_len > progname.length) ? @max_prog_len : progname.length unless progname.nil? "#{datetime.strftime("%Y-%m-%d %H:%M:%S.%6N")} || #{EXECUTABLE} || #{progname || (' ' * @max_prog_len)} || #{colorlevel(severity)}#{(' ' * (5 - severity.length))} || #{msg}" }, apache: Proc.new { |severity, datetime, progname, msg| "[#{datetime.strftime("%a %b %d %H:%M:%S.%6N %Y")}] [#{severity}] [#{EXECUTABLE}] [#{progname}] #{msg.gsub(/\e\[([;\d]+)?m/, '')}" }, json: Proc.new { |severity, datetime, progname, msg| { timestamp: datetime.strftime("%Y-%m-%d %H:%M:%S.%N"), severity: severity, application: EXECUTABLE, module: progname, message: msg.gsub(/\e\[([;\d]+)?m/, '') }.to_json }, ruby: Proc.new { |severity, datetime, progname, msg| @original_formatter.call(severity, datetime, progname, msg).chomp }, lolcat: Proc.new { |severity, _datetime, _progname, msg| "#{colorlevel(severity)}#{(' ' * (5 - severity.length))} || #{Lol.makestr(msg, { spread: 3, freq: 0.1, slope: 4, invert: false, truecolor: true })}" } }
Class Method Summary collapse
Instance Method Summary collapse
- #add(level, message, progname = nil, &block) ⇒ Object
- #add_format(slug, prok) ⇒ Object
- #debug(message, progname = nil, &block) ⇒ Object
- #error(message, progname = nil, &block) ⇒ Object
- #fatal(message, progname = nil, exit_status: nil, &block) ⇒ Object
- #format(slug = nil) ⇒ Object
- #info(message, progname = nil, &block) ⇒ Object
-
#initialize(target: STDOUT, level: :info, format: :display) ⇒ Logger
constructor
A new instance of Logger.
- #level(slug = nil) ⇒ Object
- #target(target) ⇒ Object
- #unknown(message, progname = nil, &block) ⇒ Object
- #warn(message, progname = nil, &block) ⇒ Object
Constructor Details
#initialize(target: STDOUT, level: :info, format: :display) ⇒ Logger
Returns a new instance of Logger.
44 45 46 47 48 |
# File 'lib/rbcli/components/logger/logger.rb', line 44 def initialize(target: STDOUT, level: :info, format: :display) self.target(target) self.level(level) self.format(format) end |
Class Method Details
.colorlevel(level) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/rbcli/components/logger/logger.rb', line 103 def self.colorlevel level level.colorize( { 'DEBUG' => :blue, 'INFO' => :green, 'WARN' => :yellow, 'ERROR' => :red, 'FATAL' => { color: :light_red, mode: :bold }, 'ANY' => :cyan }[level.to_s.upcase] || :default) end |
.formats ⇒ Object
40 41 42 |
# File 'lib/rbcli/components/logger/logger.rb', line 40 def self.formats @@formatters.keys end |
Instance Method Details
#add(level, message, progname = nil, &block) ⇒ Object
72 73 74 |
# File 'lib/rbcli/components/logger/logger.rb', line 72 def add level, , progname = nil, &block @logger.add(logger_level(level), , progname, &block) end |
#add_format(slug, prok) ⇒ Object
68 69 70 |
# File 'lib/rbcli/components/logger/logger.rb', line 68 def add_format slug, prok @@formatters[slug] = prok end |
#debug(message, progname = nil, &block) ⇒ Object
76 77 78 |
# File 'lib/rbcli/components/logger/logger.rb', line 76 def debug , progname = nil, &block self.add(Logger::DEBUG, , progname, &block) end |
#error(message, progname = nil, &block) ⇒ Object
88 89 90 |
# File 'lib/rbcli/components/logger/logger.rb', line 88 def error , progname = nil, &block self.add(Logger::ERROR, , progname, &block) end |
#fatal(message, progname = nil, exit_status: nil, &block) ⇒ Object
92 93 94 95 |
# File 'lib/rbcli/components/logger/logger.rb', line 92 def fatal , progname = nil, exit_status: nil, &block self.add(Logger::FATAL, , progname, &block) Rbcli.exit(exit_status) unless exit_status.nil? end |
#format(slug = nil) ⇒ Object
63 64 65 66 |
# File 'lib/rbcli/components/logger/logger.rb', line 63 def format slug = nil return @format if slug.nil? @format = slug if @@formatters.key?(slug) end |
#info(message, progname = nil, &block) ⇒ Object
80 81 82 |
# File 'lib/rbcli/components/logger/logger.rb', line 80 def info , progname = nil, &block self.add(Logger::INFO, , progname, &block) end |
#level(slug = nil) ⇒ Object
58 59 60 61 |
# File 'lib/rbcli/components/logger/logger.rb', line 58 def level slug = nil return @logger.level if slug.nil? @logger.level = logger_level(slug) end |
#target(target) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/rbcli/components/logger/logger.rb', line 50 def target target @logger = Logger.new(target_select(target)) @logger.formatter = Proc.new { |severity, datetime, progname, msg| msg = msg.to_s unless msg.is_a?(String) msg.lines.map { |line| @@formatters[@format].call(severity, datetime, progname, line.chomp) }.join("\n") + "\n" } end |
#unknown(message, progname = nil, &block) ⇒ Object
97 98 99 |
# File 'lib/rbcli/components/logger/logger.rb', line 97 def unknown , progname = nil, &block self.add(Logger::UNKNOWN, , progname, &block) end |
#warn(message, progname = nil, &block) ⇒ Object
84 85 86 |
# File 'lib/rbcli/components/logger/logger.rb', line 84 def warn , progname = nil, &block self.add(Logger::WARN, , progname, &block) end |