Module: Fractor::RactorLogger
- Defined in:
- lib/fractor/logger.rb
Overview
Ractor-safe logging module.
This module provides logging functionality that works correctly within Ractors by using $stderr for unbuffered output.
Constant Summary collapse
- LEVELS =
Log levels in order of severity
{ debug: 0, info: 1, warn: 2, error: 3, }.freeze
Class Attribute Summary collapse
-
.enabled ⇒ Boolean
Enable or disable logging.
-
.level ⇒ Symbol
Get or set the current log level.
Class Method Summary collapse
-
.debug(message, ractor_name: nil) ⇒ Object
Log a debug message.
-
.debug! ⇒ Object
Enable debug mode (sets level to :debug).
-
.error(message, ractor_name: nil, exception: nil) ⇒ Object
Log an error message.
-
.info(message, ractor_name: nil) ⇒ Object
Log an info message.
-
.log?(lvl) ⇒ Boolean
Check if a given log level would be logged.
-
.nodebug! ⇒ Object
Disable debug mode (sets level to :warn).
-
.warn(message, ractor_name: nil) ⇒ Object
Log a warning message.
Class Attribute Details
.enabled ⇒ Boolean
Enable or disable logging
138 139 140 |
# File 'lib/fractor/logger.rb', line 138 def enabled @enabled end |
.level ⇒ Symbol
Get or set the current log level
134 135 136 |
# File 'lib/fractor/logger.rb', line 134 def level @level end |
Class Method Details
.debug(message, ractor_name: nil) ⇒ Object
Log a debug message
162 163 164 165 166 |
# File 'lib/fractor/logger.rb', line 162 def debug(, ractor_name: nil) return unless log?(:debug) log(:debug, , ractor_name: ractor_name) end |
.debug! ⇒ Object
Enable debug mode (sets level to :debug)
141 142 143 144 |
# File 'lib/fractor/logger.rb', line 141 def debug! self.level = :debug self.enabled = true end |
.error(message, ractor_name: nil, exception: nil) ⇒ Object
Log an error message
190 191 192 193 194 |
# File 'lib/fractor/logger.rb', line 190 def error(, ractor_name: nil, exception: nil) return unless log?(:error) log(:error, , ractor_name: ractor_name, exception: exception) end |
.info(message, ractor_name: nil) ⇒ Object
Log an info message
171 172 173 174 175 |
# File 'lib/fractor/logger.rb', line 171 def info(, ractor_name: nil) return unless log?(:info) log(:info, , ractor_name: ractor_name) end |
.log?(lvl) ⇒ Boolean
Check if a given log level would be logged
155 156 157 |
# File 'lib/fractor/logger.rb', line 155 def log?(lvl) enabled && LEVELS[lvl.to_sym] >= LEVELS[level] end |
.nodebug! ⇒ Object
Disable debug mode (sets level to :warn)
147 148 149 150 |
# File 'lib/fractor/logger.rb', line 147 def nodebug! self.level = :warn self.enabled = false end |
.warn(message, ractor_name: nil) ⇒ Object
Log a warning message
180 181 182 183 184 |
# File 'lib/fractor/logger.rb', line 180 def warn(, ractor_name: nil) return unless log?(:warn) log(:warn, , ractor_name: ractor_name) end |