Class: Prefab::LoggerClient
- Inherits:
-
Logger
- Object
- Logger
- Prefab::LoggerClient
- 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 =
{ PrefabProto::LogLevel::NOT_SET_LOG_LEVEL => ::Logger::DEBUG, PrefabProto::LogLevel::TRACE => ::Logger::DEBUG, PrefabProto::LogLevel::DEBUG => ::Logger::DEBUG, PrefabProto::LogLevel::INFO => ::Logger::INFO, PrefabProto::LogLevel::WARN => ::Logger::WARN, PrefabProto::LogLevel::ERROR => ::Logger::ERROR, PrefabProto::LogLevel::FATAL => ::Logger::FATAL }.freeze
Instance Attribute Summary collapse
-
#context_keys ⇒ Object
readonly
Returns the value of attribute context_keys.
Class Method Summary collapse
Instance Method Summary collapse
- #add_context_keys(*keys) ⇒ Object
-
#add_internal(severity, message, progname, loc, log_context = {}, &block) ⇒ Object
InternalLoggers Will Call This.
- #config_client=(config_client) ⇒ Object
- #debug(progname = nil, **log_context, &block) ⇒ Object
- #debug? ⇒ Boolean
- #error(progname = nil, **log_context, &block) ⇒ Object
- #error? ⇒ Boolean
- #fatal(progname = nil, **log_context, &block) ⇒ Object
- #fatal? ⇒ Boolean
- #info(progname = nil, **log_context, &block) ⇒ Object
- #info? ⇒ Boolean
-
#initialize(logdev, log_path_aggregator: nil, formatter: Options::DEFAULT_LOG_FORMATTER, prefix: nil) ⇒ LoggerClient
constructor
A new instance of LoggerClient.
- #internal_logger(path = nil) ⇒ Object
- #level ⇒ Object
- #local_log_id ⇒ Object
- #log(message, path, progname, severity, log_context = {}) ⇒ Object
- #log_internal(severity, message, path, log_context = {}, &block) ⇒ Object
- #silence ⇒ Object
- #warn(progname = nil, **log_context, &block) ⇒ Object
- #warn? ⇒ Boolean
- #with_context_keys(*keys) ⇒ Object
Constructor Details
#initialize(logdev, log_path_aggregator: nil, formatter: Options::DEFAULT_LOG_FORMATTER, prefix: nil) ⇒ LoggerClient
Returns a new instance of LoggerClient.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/prefab/logger_client.rb', line 26 def initialize(logdev, log_path_aggregator: nil, formatter: Options::DEFAULT_LOG_FORMATTER, prefix: nil) super(logdev) self.formatter = formatter @config_client = BootstrappingConfigClient.new @silences = Concurrent::Map.new(initial_capacity: 2) @recurse_check = Concurrent::Map.new(initial_capacity: 2) @prefix = "#{prefix}#{prefix && '.'}" @context_keys = Concurrent::Set.new @log_path_aggregator = log_path_aggregator @@shared_instance = self end |
Instance Attribute Details
#context_keys ⇒ Object (readonly)
Returns the value of attribute context_keys.
24 25 26 |
# File 'lib/prefab/logger_client.rb', line 24 def context_keys @context_keys end |
Class Method Details
.instance ⇒ Object
20 21 22 |
# File 'lib/prefab/logger_client.rb', line 20 def self.instance @@shared_instance ||= LoggerClient.new($stdout) end |
Instance Method Details
#add_context_keys(*keys) ⇒ Object
40 41 42 |
# File 'lib/prefab/logger_client.rb', line 40 def add_context_keys(*keys) @context_keys += keys end |
#add_internal(severity, message, progname, loc, log_context = {}, &block) ⇒ Object
InternalLoggers Will Call This
56 57 58 59 60 61 62 63 |
# File 'lib/prefab/logger_client.rb', line 56 def add_internal(severity, , progname, loc, log_context={}, &block) path_loc = get_loc_path(loc) path = @prefix + path_loc @log_path_aggregator&.push(path_loc, severity) log(, path, progname, severity, log_context, &block) end |
#config_client=(config_client) ⇒ Object
146 147 148 |
# File 'lib/prefab/logger_client.rb', line 146 def config_client=(config_client) @config_client = config_client end |
#debug(progname = nil, **log_context, &block) ⇒ Object
102 103 104 |
# File 'lib/prefab/logger_client.rb', line 102 def debug(progname = nil, **log_context, &block) add_internal(DEBUG, nil, progname, caller_locations(1, 1)[0], log_context, &block) end |
#debug? ⇒ Boolean
122 123 124 |
# File 'lib/prefab/logger_client.rb', line 122 def debug? true end |
#error(progname = nil, **log_context, &block) ⇒ Object
114 115 116 |
# File 'lib/prefab/logger_client.rb', line 114 def error(progname = nil, **log_context, &block) add_internal(ERROR, nil, progname, caller_locations(1, 1)[0], log_context, &block) end |
#error? ⇒ Boolean
134 135 136 |
# File 'lib/prefab/logger_client.rb', line 134 def error? true end |
#fatal(progname = nil, **log_context, &block) ⇒ Object
118 119 120 |
# File 'lib/prefab/logger_client.rb', line 118 def fatal(progname = nil, **log_context, &block) add_internal(FATAL, nil, progname, caller_locations(1, 1)[0], log_context, &block) end |
#fatal? ⇒ Boolean
138 139 140 |
# File 'lib/prefab/logger_client.rb', line 138 def fatal? true end |
#info(progname = nil, **log_context, &block) ⇒ Object
106 107 108 |
# File 'lib/prefab/logger_client.rb', line 106 def info(progname = nil, **log_context, &block) add_internal(INFO, nil, progname, caller_locations(1, 1)[0], log_context, &block) end |
#info? ⇒ Boolean
126 127 128 |
# File 'lib/prefab/logger_client.rb', line 126 def info? true end |
#internal_logger(path = nil) ⇒ Object
51 52 53 |
# File 'lib/prefab/logger_client.rb', line 51 def internal_logger(path=nil) InternalLogger.new(path, self) end |
#level ⇒ Object
142 143 144 |
# File 'lib/prefab/logger_client.rb', line 142 def level DEBUG end |
#local_log_id ⇒ Object
150 151 152 |
# File 'lib/prefab/logger_client.rb', line 150 def local_log_id Thread.current.__id__ end |
#log(message, path, progname, severity, log_context = {}) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/prefab/logger_client.rb', line 81 def log(, path, progname, severity, log_context={}) severity ||= ::Logger::UNKNOWN return true if @logdev.nil? || severity < level_of(path) || @silences[local_log_id] progname = @progname if progname.nil? if .nil? if block_given? = yield else = progname progname = @progname end end @logdev.write( (format_severity(severity), Time.now, progname, , path, stringify_keys(log_context.merge(fetch_context_for_context_keys))) ) true end |
#log_internal(severity, message, path, log_context = {}, &block) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/prefab/logger_client.rb', line 65 def log_internal(severity, , path, log_context={}, &block) return if @recurse_check[local_log_id] @recurse_check[local_log_id] = true path = if path "#{INTERNAL_PREFIX}.#{path}" else INTERNAL_PREFIX end begin log(, path, nil, severity, log_context, &block) ensure @recurse_check[local_log_id] = false end end |
#silence ⇒ Object
154 155 156 157 158 159 |
# File 'lib/prefab/logger_client.rb', line 154 def silence @silences[local_log_id] = true yield self ensure @silences[local_log_id] = false end |
#warn(progname = nil, **log_context, &block) ⇒ Object
110 111 112 |
# File 'lib/prefab/logger_client.rb', line 110 def warn(progname = nil, **log_context, &block) add_internal(WARN, nil, progname, caller_locations(1, 1)[0], log_context, &block) end |
#warn? ⇒ Boolean
130 131 132 |
# File 'lib/prefab/logger_client.rb', line 130 def warn? true end |
#with_context_keys(*keys) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/prefab/logger_client.rb', line 44 def with_context_keys(*keys) @context_keys += keys yield ensure @context_keys -= keys end |