Class: ColissimoLabel::Logger

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Logger::Severity
Defined in:
lib/colissimo_label/logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger_path = nil) ⇒ Logger

Returns a new instance of Logger.



18
19
20
# File 'lib/colissimo_label/logger.rb', line 18

def initialize(logger_path = nil)
  @logger = create_logger(logger_path || $stdout)
end

Instance Method Details

#deprecate(old, new) ⇒ Object

Marks code as deprecated with replacement.

Parameters:

  • old (String)
  • new (String)


80
81
82
# File 'lib/colissimo_label/logger.rb', line 80

def deprecate(old, new)
  warn "[DEPRECATION] #{old} is deprecated. Use #{new} instead."
end

#ioObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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.



70
71
72
# File 'lib/colissimo_label/logger.rb', line 70

def io
  @logger.instance_variable_get(:@logdev).instance_variable_get(:@dev)
end

#level=(severity) ⇒ Object

For Ruby < 2.3 compatibility Based on github.com/ruby/ruby/blob/ruby_2_3/lib/logger.rb#L250



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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) ⇒ Object



22
23
24
25
26
27
28
29
# 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