Method: VCAP::Logging.set_log_level
- Defined in:
- lib/vcap/logging.rb
.set_log_level(path_regex, log_level_name) ⇒ Object
Sets the log level to log_level for every logger whose name matches path_regex. Loggers who were previously set to this level and whose names no longer match path_regex are reset to the default level.
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/vcap/logging.rb', line 129 def set_log_level(path_regex, log_level_name) log_level_name = log_level_name.to_sym if log_level_name.kind_of?(String) raise ArgumentError, "Unknown log level #{log_level_name}" unless LOG_LEVELS[log_level_name] regex = Regexp.new("^#{path_regex}$") @log_level_filters[log_level_name] = regex @sorted_log_level_filters = @log_level_filters.keys.sort {|a, b| LOG_LEVELS[a] <=> LOG_LEVELS[b] }.map {|lvl| [lvl, @log_level_filters[lvl]] } for logger_name, logger in @loggers if regex.match(logger_name) logger.log_level = log_level_name elsif logger.log_level == log_level_name # Reset any loggers at the supplied level that no longer match logger.log_level = @default_log_level end end end |