Class: Prefab::LoggerClient

Inherits:
Logger
  • Object
show all
Defined in:
lib/prefab/logger_client.rb

Constant Summary collapse

SEP =
'.'
BASE_KEY =
'log-level'
UNKNOWN_PATH =
'unknown.'
INTERNAL_PREFIX =
'cloud.prefab.client'
LOG_LEVEL_LOOKUPS =
{
  Prefab::LogLevel::NOT_SET_LOG_LEVEL => ::Logger::DEBUG,
  Prefab::LogLevel::TRACE => ::Logger::DEBUG,
  Prefab::LogLevel::DEBUG => ::Logger::DEBUG,
  Prefab::LogLevel::INFO => ::Logger::INFO,
  Prefab::LogLevel::WARN => ::Logger::WARN,
  Prefab::LogLevel::ERROR => ::Logger::ERROR,
  Prefab::LogLevel::FATAL => ::Logger::FATAL
}

Instance Method Summary collapse

Constructor Details

#initialize(logdev, log_path_collector: nil, formatter: nil, prefix: nil) ⇒ LoggerClient

Returns a new instance of LoggerClient.



22
23
24
25
26
27
28
29
30
# File 'lib/prefab/logger_client.rb', line 22

def initialize(logdev, log_path_collector: nil, formatter: nil, prefix: nil)
  super(logdev)
  self.formatter = formatter
  @config_client = BootstrappingConfigClient.new
  @silences = Concurrent::Map.new(initial_capacity: 2)
  @prefix = "#{prefix}#{prefix && '.'}"

  @log_path_collector = log_path_collector
end

Instance Method Details

#add(severity, message = nil, progname = nil, loc, &block) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/prefab/logger_client.rb', line 32

def add(severity, message = nil, progname = nil, loc, &block)
  path_loc = get_loc_path(loc)
  path = @prefix + path_loc

  @log_path_collector&.push(path_loc, severity)

  log(message, path, progname, severity, &block)
end

#debug(progname = nil, &block) ⇒ Object



73
74
75
# File 'lib/prefab/logger_client.rb', line 73

def debug(progname = nil, &block)
  add(DEBUG, nil, progname, caller_locations(1, 1)[0], &block)
end

#debug?Boolean

Returns:



93
94
95
# File 'lib/prefab/logger_client.rb', line 93

def debug?
  true
end

#error(progname = nil, &block) ⇒ Object



85
86
87
# File 'lib/prefab/logger_client.rb', line 85

def error(progname = nil, &block)
  add(ERROR, nil, progname, caller_locations(1, 1)[0], &block)
end

#error?Boolean

Returns:



105
106
107
# File 'lib/prefab/logger_client.rb', line 105

def error?
  true
end

#fatal(progname = nil, &block) ⇒ Object



89
90
91
# File 'lib/prefab/logger_client.rb', line 89

def fatal(progname = nil, &block)
  add(FATAL, nil, progname, caller_locations(1, 1)[0], &block)
end

#fatal?Boolean

Returns:



109
110
111
# File 'lib/prefab/logger_client.rb', line 109

def fatal?
  true
end

#info(progname = nil, &block) ⇒ Object



77
78
79
# File 'lib/prefab/logger_client.rb', line 77

def info(progname = nil, &block)
  add(INFO, nil, progname, caller_locations(1, 1)[0], &block)
end

#info?Boolean

Returns:



97
98
99
# File 'lib/prefab/logger_client.rb', line 97

def info?
  true
end

#levelObject



113
114
115
# File 'lib/prefab/logger_client.rb', line 113

def level
  DEBUG
end

#local_log_idObject



121
122
123
# File 'lib/prefab/logger_client.rb', line 121

def local_log_id
  Thread.current.__id__
end

#log(message, path, progname, severity) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/prefab/logger_client.rb', line 51

def log(message, path, progname, severity)
  severity ||= ::Logger::UNKNOWN

  return true if @logdev.nil? || severity < level_of(path) || @silences[local_log_id]

  progname = "#{path}: #{progname || @progname}"

  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end

  @logdev.write(
    format_message(format_severity(severity), Time.now, progname, message)
  )
  true
end

#log_internal(message, path = nil, progname, severity, &block) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/prefab/logger_client.rb', line 41

def log_internal(message, path = nil, progname, severity, &block)
  path = if path
           "#{INTERNAL_PREFIX}.#{path}"
         else
           INTERNAL_PREFIX
         end

  log(message, path, progname, severity, &block)
end

#set_config_client(config_client) ⇒ Object



117
118
119
# File 'lib/prefab/logger_client.rb', line 117

def set_config_client(config_client)
  @config_client = config_client
end

#silenceObject



125
126
127
128
129
130
# File 'lib/prefab/logger_client.rb', line 125

def silence
  @silences[local_log_id] = true
  yield self
ensure
  @silences[local_log_id] = false
end

#warn(progname = nil, &block) ⇒ Object



81
82
83
# File 'lib/prefab/logger_client.rb', line 81

def warn(progname = nil, &block)
  add(WARN, nil, progname, caller_locations(1, 1)[0], &block)
end

#warn?Boolean

Returns:



101
102
103
# File 'lib/prefab/logger_client.rb', line 101

def warn?
  true
end