Class: SemanticLogger::Base
- Inherits:
-
Object
- Object
- SemanticLogger::Base
- Defined in:
- lib/semantic_logger/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#filter ⇒ Object
Class name to be logged.
-
#name ⇒ Object
Class name to be logged.
Instance Method Summary collapse
-
#fast_tag(tag, &block) ⇒ Object
:nodoc:.
-
#level ⇒ Object
Returns the current log level if set, otherwise it returns the global default log level.
-
#level=(level) ⇒ Object
Set the logging level for this logger.
-
#measure(level, message, params = {}, &block) ⇒ Object
(also: #benchmark)
Dynamically supply the log level with every measurement call.
-
#payload ⇒ Object
Returns [Hash] payload to be added to every log entry in the current scope on this thread.
-
#pop_tags(quantity = 1) ⇒ Object
:nodoc:.
-
#push_tags(*tags) ⇒ Object
:nodoc:.
-
#silence(new_level = :error, &block) ⇒ Object
:nodoc:.
-
#tagged(*tags, &block) ⇒ Object
(also: #with_tags)
:nodoc:.
-
#tags ⇒ Object
:nodoc:.
-
#with_payload(payload) ⇒ Object
Thread specific context information to be logged with every log entry.
Instance Attribute Details
#filter ⇒ Object
Class name to be logged
12 13 14 |
# File 'lib/semantic_logger/base.rb', line 12 def filter @filter end |
#name ⇒ Object
Class name to be logged
12 13 14 |
# File 'lib/semantic_logger/base.rb', line 12 def name @name end |
Instance Method Details
#fast_tag(tag, &block) ⇒ Object
:nodoc:
150 151 152 |
# File 'lib/semantic_logger/base.rb', line 150 def fast_tag(tag, &block) SemanticLogger.fast_tag(tag, &block) end |
#level ⇒ Object
Returns the current log level if set, otherwise it returns the global default log level
29 30 31 |
# File 'lib/semantic_logger/base.rb', line 29 def level @level || SemanticLogger.default_level end |
#level=(level) ⇒ Object
Set the logging level for this logger
Note: This level is only for this particular instance. It does not override
the log level in any logging instance or the default log level
SemanticLogger.default_level
Must be one of the values in SemanticLogger::LEVELS, or nil if this logger instance should use the global default level
22 23 24 25 |
# File 'lib/semantic_logger/base.rb', line 22 def level=(level) @level_index = SemanticLogger.level_to_index(level) @level = SemanticLogger.send(:index_to_level, @level_index) end |
#measure(level, message, params = {}, &block) ⇒ Object Also known as: benchmark
Dynamically supply the log level with every measurement call
110 111 112 113 114 115 116 117 |
# File 'lib/semantic_logger/base.rb', line 110 def measure(level, , params = {}, &block) index = SemanticLogger.level_to_index(level) if level_index <= index measure_internal(level, index, , params, &block) else block.call(params) if block end end |
#payload ⇒ Object
Returns [Hash] payload to be added to every log entry in the current scope on this thread. Returns nil if no payload is currently set
179 180 181 |
# File 'lib/semantic_logger/base.rb', line 179 def payload Thread.current[:semantic_logger_payload] end |
#pop_tags(quantity = 1) ⇒ Object
:nodoc:
140 141 142 |
# File 'lib/semantic_logger/base.rb', line 140 def (quantity = 1) SemanticLogger.(quantity) end |
#push_tags(*tags) ⇒ Object
:nodoc:
135 136 137 |
# File 'lib/semantic_logger/base.rb', line 135 def (*) SemanticLogger.(*) end |
#silence(new_level = :error, &block) ⇒ Object
:nodoc:
145 146 147 |
# File 'lib/semantic_logger/base.rb', line 145 def silence(new_level = :error, &block) SemanticLogger.silence(new_level, &block) end |
#tagged(*tags, &block) ⇒ Object Also known as:
:nodoc:
122 123 124 |
# File 'lib/semantic_logger/base.rb', line 122 def tagged(*, &block) SemanticLogger.tagged(*, &block) end |
#tags ⇒ Object
:nodoc:
130 131 132 |
# File 'lib/semantic_logger/base.rb', line 130 def SemanticLogger. end |
#with_payload(payload) ⇒ Object
Thread specific context information to be logged with every log entry
Add a payload to all log calls on This Thread within the supplied block
logger.with_payload(tracking_number: 12345) do
logger.debug('Hello World')
end
If a log call already includes a pyload, this payload will be merged with the supplied payload, with the supplied payload taking precedence
logger.with_payload(tracking_number: 12345) do
logger.debug('Hello World', result: 'blah')
end
168 169 170 171 172 173 174 |
# File 'lib/semantic_logger/base.rb', line 168 def with_payload(payload) current_payload = self.payload Thread.current[:semantic_logger_payload] = current_payload ? current_payload.merge(payload) : payload yield ensure Thread.current[:semantic_logger_payload] = current_payload end |