Class: LoggerService

Inherits:
Object
  • Object
show all
Defined in:
lib/wingify/services/logger_service.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ LoggerService

Returns a new instance of LoggerService.



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/wingify/services/logger_service.rb', line 56

def initialize(config = {})
  is_via_vwo = BrandContext.is_via_vwo?
  config[:prefix] ||= BrandUtil.get_log_prefix(is_via_vwo)

  # Initialize the LogManager
  LogManager.instance(config)

  # Read the log files and set class variables
  self.class.debug_messages = read_and_stamp_log_files('debug_messages.json', is_via_vwo)
  self.class.info_messages = read_and_stamp_log_files('info_messages.json', is_via_vwo)
  self.class.error_messages = read_and_stamp_log_files('error_messages.json', is_via_vwo)
  self.class.warning_messages = read_and_stamp_log_files('warn_messages.json', is_via_vwo)
end

Class Attribute Details

.debug_messagesObject

Returns the value of attribute debug_messages.



27
28
29
# File 'lib/wingify/services/logger_service.rb', line 27

def debug_messages
  @debug_messages
end

.error_messagesObject

Returns the value of attribute error_messages.



27
28
29
# File 'lib/wingify/services/logger_service.rb', line 27

def error_messages
  @error_messages
end

.info_messagesObject

Returns the value of attribute info_messages.



27
28
29
# File 'lib/wingify/services/logger_service.rb', line 27

def info_messages
  @info_messages
end

.warning_messagesObject

Returns the value of attribute warning_messages.



27
28
29
# File 'lib/wingify/services/logger_service.rb', line 27

def warning_messages
  @warning_messages
end

Class Method Details

.get_messages(level) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/wingify/services/logger_service.rb', line 88

def self.get_messages(level)
  case level
  when LogLevelEnum::DEBUG
    @debug_messages
  when LogLevelEnum::INFO
    @info_messages
  when LogLevelEnum::WARN
    @warning_messages
  else
    @error_messages
  end
end

.log(level, key = nil, map = {}, should_send_to_vwo = true) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/wingify/services/logger_service.rb', line 30

def self.log(level, key = nil, map = {}, should_send_to_vwo = true)
  is_via_vwo = BrandContext.is_via_vwo?
  log_manager = LogManager.instance({ prefix: BrandUtil.get_log_prefix(is_via_vwo) })

  if key && map
    message = build_message(get_messages(level)[key], map)
  else
    message = key # key acts as the message when no map is provided
  end

  case level
  when LogLevelEnum::DEBUG
    log_manager.debug(message)
  when LogLevelEnum::INFO
    log_manager.info(message)
  when LogLevelEnum::WARN
    log_manager.warn(message)
  else
    log_manager.error(message)
    if should_send_to_vwo
      # print log
      self.send_log_to_vwo(key, message, map)
    end
  end
end

.send_log_to_vwo(template, message, debug_props = {}) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/wingify/services/logger_service.rb', line 101

def self.send_log_to_vwo(template, message, debug_props = {})
  # send debugger event to VWO
  begin
    debug_props[:msg_t] = template
    debug_props[:msg] = message
    debug_props[:lt] = LogLevelEnum::ERROR
    debug_props[:cg] = DebugCategoryEnum::ERROR

    DebuggerServiceUtil.send_debugger_event(debug_props)
  rescue StandardError => e
    puts "[#{BrandUtil.get_log_prefix(BrandContext.is_via_vwo?)}] ERROR: Error sending log to VWO: #{e.message}"
  end
end