Module: Steno
- Defined in:
- lib/steno.rb,
lib/steno/config.rb,
lib/steno/errors.rb,
lib/steno/logger.rb,
lib/steno/record.rb,
lib/steno/context.rb,
lib/steno/sink/io.rb,
lib/steno/version.rb,
lib/steno/log_level.rb,
lib/steno/sink/base.rb,
lib/steno/codec/base.rb,
lib/steno/codec/json.rb,
lib/steno/sink/counter.rb,
lib/steno/tagged_logger.rb,
lib/steno/json_prettifier.rb
Defined Under Namespace
Modules: Codec, Context, Sink Classes: Config, Error, JsonPrettifier, LogLevel, Logger, Record, TaggedLogger
Constant Summary collapse
- VERSION =
'1.3.5'
Class Attribute Summary collapse
-
.config ⇒ Object
readonly
Returns the value of attribute config.
-
.logger_regexp ⇒ Object
readonly
Returns the value of attribute logger_regexp.
Class Method Summary collapse
-
.clear_logger_regexp ⇒ nil
Clears the logger regexp, if set.
-
.init(config) ⇒ nil
Initializes the logging system.
-
.logger(name) ⇒ Steno::Logger
Returns (and memoizes) the logger identified by name.
-
.logger_level_snapshot ⇒ Hash
Map of logger name => level.
-
.set_logger_regexp(regexp, level) ⇒ nil
Sets all loggers whose name matches regexp to level.
Class Attribute Details
.config ⇒ Object (readonly)
Returns the value of attribute config.
16 17 18 |
# File 'lib/steno.rb', line 16 def config @config end |
.logger_regexp ⇒ Object (readonly)
Returns the value of attribute logger_regexp.
16 17 18 |
# File 'lib/steno.rb', line 16 def logger_regexp @logger_regexp end |
Class Method Details
.clear_logger_regexp ⇒ nil
Clears the logger regexp, if set. Resets the level of any loggers matching the regex to the default log level.
88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/steno.rb', line 88 def clear_logger_regexp @loggers_lock.synchronize do return if @logger_regexp.nil? @loggers.each do |name, logger| logger.level = @config.default_log_level if name =~ @logger_regexp end @logger_regexp = nil @logger_regexp_level = nil end nil end |
.init(config) ⇒ nil
Initializes the logging system. This must be called exactly once before attempting to use any Steno class methods.
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/steno.rb', line 24 def init(config) @config = config @loggers = {} @loggers_lock = Mutex.new @logger_regexp = nil @logger_regexp_level = nil nil end |
.logger(name) ⇒ Steno::Logger
Returns (and memoizes) the logger identified by name.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/steno.rb', line 41 def logger(name) @loggers_lock.synchronize do logger = @loggers[name] if logger.nil? level = compute_level(name) logger = Steno::Logger.new(name, @config.sinks, level: level, context: @config.context) @loggers[name] = logger end logger end end |
.logger_level_snapshot ⇒ Hash
Returns Map of logger name => level.
104 105 106 107 108 109 110 111 112 |
# File 'lib/steno.rb', line 104 def logger_level_snapshot @loggers_lock.synchronize do snapshot = {} @loggers.each { |name, logger| snapshot[name] = logger.level } snapshot end end |
.set_logger_regexp(regexp, level) ⇒ nil
Sets all loggers whose name matches regexp to level. Resets any loggers whose name matches the previous regexp but not the supplied regexp.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/steno.rb', line 66 def set_logger_regexp(regexp, level) @loggers_lock.synchronize do @loggers.each do |name, logger| if name =~ regexp logger.level = level elsif @logger_regexp && (name =~ @logger_regexp) # Reset loggers affected by the old regexp but not by the new logger.level = @config.default_log_level end end @logger_regexp = regexp @logger_regexp_level = level nil end end |