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.2.4"
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.
17 18 19 |
# File 'lib/steno.rb', line 17 def config @config end |
.logger_regexp ⇒ Object (readonly)
Returns the value of attribute logger_regexp.
18 19 20 |
# File 'lib/steno.rb', line 18 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.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/steno.rb', line 90 def clear_logger_regexp @loggers_lock.synchronize do return if @logger_regexp.nil? @loggers.each do |name, logger| if name =~ @logger_regexp logger.level = @config.default_log_level end 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.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/steno.rb', line 26 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.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/steno.rb', line 43 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
109 110 111 112 113 114 115 116 117 |
# File 'lib/steno.rb', line 109 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.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/steno.rb', line 68 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 |