Class: Logz::LoggerWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/logz/logger_wrapper.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ LoggerWrapper

Returns a new instance of LoggerWrapper.



5
6
7
8
# File 'lib/logz/logger_wrapper.rb', line 5

def initialize(logger)
  @logger = Logger.new(logger)
  reset
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/logz/logger_wrapper.rb', line 39

def method_missing(m, *args, &block)
  if has_level?(m)
    logger.send(m, to_output(args.first))
    reset
  elsif logger.respond_to?(m)
    logger.send(m, *args)
  elsif Rainbow::X11ColorNames::NAMES.include?(m)
    @color = m.to_sym
    self
  else
    super
  end
end

Instance Attribute Details

#loggerObject

Returns the value of attribute logger.



3
4
5
# File 'lib/logz/logger_wrapper.rb', line 3

def logger
  @logger
end

Instance Method Details

#color(color_name) ⇒ Object



15
16
17
18
# File 'lib/logz/logger_wrapper.rb', line 15

def color(color_name)
  @color = color_name
  self
end

#has_level?(level) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/logz/logger_wrapper.rb', line 33

def has_level?(level)
  Logz.config.levels.include?(level)
end

#resetObject



10
11
12
13
# File 'lib/logz/logger_wrapper.rb', line 10

def reset
  @tags = []
  @color = nil
end

#tagged(tags) ⇒ Object Also known as: tag

user_id: 1



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/logz/logger_wrapper.rb', line 21

def tagged(tags)
  if tags.is_a?(Hash)
    @tags << tags.map { |k, v| "[#{k&.upcase}=#{v}]" }.join(" ")
  elsif tags.is_a?(Array)
    @tags << tags.map { |v| "[#{v&.upcase}]" }.join(" ")
  else
    @tags << "[#{tags.to_s&.upcase}]"
  end

  self
end