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, formatter: nil, prefix: nil) ⇒ LoggerClient

Returns a new instance of LoggerClient.



20
21
22
23
24
25
26
# File 'lib/prefab/logger_client.rb', line 20

def initialize(logdev, formatter: nil, prefix: nil)
  super(logdev)
  self.formatter = formatter
  @config_client = BootstrappingConfigClient.new
  @silences = Concurrent::Map.new(initial_capacity: 2)
  @prefix = prefix
end

Instance Method Details

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



28
29
30
31
32
33
# File 'lib/prefab/logger_client.rb', line 28

def add(severity, message = nil, progname = nil, loc, &block)
  path = get_loc_path(loc)
  path = "#{@prefix}#{@prefix && '.'}#{path}"

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

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



66
67
68
# File 'lib/prefab/logger_client.rb', line 66

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

#debug? ⇒ Boolean

Returns:

  • (Boolean)


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

def debug?
  true
end

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



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

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

#error? ⇒ Boolean

Returns:

  • (Boolean)


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

def error?
  true
end

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



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

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

#fatal? ⇒ Boolean

Returns:

  • (Boolean)


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

def fatal?
  true
end

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



70
71
72
# File 'lib/prefab/logger_client.rb', line 70

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

#info? ⇒ Boolean

Returns:

  • (Boolean)


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

def info?
  true
end

#level ⇒ Object



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

def level
  DEBUG
end

#local_log_id ⇒ Object



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

def local_log_id
  Thread.current.__id__
end

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



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/prefab/logger_client.rb', line 45

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



35
36
37
38
39
40
41
42
43
# File 'lib/prefab/logger_client.rb', line 35

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



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

def set_config_client(config_client)
  @config_client = config_client
end

#silence ⇒ Object



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

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

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



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

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

#warn? ⇒ Boolean

Returns:

  • (Boolean)


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

def warn?
  true
end