class ColissimoLabel::Logger
Public Class Methods
new(logger_path = nil)
click to toggle source
# File lib/colissimo_label/logger.rb, line 18 def initialize(logger_path = nil) @logger = create_logger(logger_path || $stdout) end
Public Instance Methods
deprecate(old, new)
click to toggle source
Marks code as deprecated with replacement.
@param [String] old @param [String] new
# File lib/colissimo_label/logger.rb, line 80 def deprecate(old, new) warn "[DEPRECATION] #{old} is deprecated. Use #{new} instead." end
io()
click to toggle source
Returns IO object used by logger internally.
Normally, we would have never needed it, but we want to use it as IO object for all child processes to ensure their output is redirected there.
It is only used in debug level, in other cases output is suppressed.
@api private
# File lib/colissimo_label/logger.rb, line 70 def io @logger.instance_variable_get(:@logdev).instance_variable_get(:@dev) end
level=(severity)
click to toggle source
For Ruby < 2.3 compatibility Based on github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250
# File lib/colissimo_label/logger.rb, line 36 def level=(severity) if severity.is_a?(Integer) @logger.level = severity else case severity.to_s.downcase when 'debug' @logger.level = DEBUG when 'info' @logger.level = INFO when 'warn' @logger.level = WARN when 'error' @logger.level = ERROR when 'fatal' @logger.level = FATAL when 'unknown' @logger.level = UNKNOWN else raise ArgumentError, "invalid log level: #{severity}" end end end
output=(io)
click to toggle source
# File lib/colissimo_label/logger.rb, line 22 def output=(io) # `Logger#reopen` was added in Ruby 2.3 if @logger.respond_to?(:reopen) @logger.reopen(io) else @logger = create_logger(io) end end
Private Instance Methods
create_logger(output)
click to toggle source
# File lib/colissimo_label/logger.rb, line 86 def create_logger(output) logger = ::Logger.new(output) logger.progname = 'ColissimoLabel' logger.level = ($DEBUG ? DEBUG : INFO) logger.formatter = proc do |severity, time, progname, msg| "#{time.strftime('%F %T')} #{severity} #{progname} #{msg}\n" end logger end