Sha256: 957f788a239df769983bace5008f40051735325553bde9d42dad9a21def1655b
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
require 'logger' require 'singleton' module SoraGeocoding def self.log(level, message) Logger.instance.log(level, message) end # # Logger # class Logger include Singleton LOG_LEVEL = { debug: ::Logger::DEBUG, info: ::Logger::INFO, warn: ::Logger::WARN, error: ::Logger::ERROR, fatal: ::Logger::FATAL }.freeze def log(level, message) raise StandardError, 'SoraGeocoding tried to log a message with an invalid log level.' unless valid_level?(level) if respond_to?(:add) add(LOG_LEVEL[level], message) else raise SoraGeocoding::ConfigurationError, 'Please specify valid logger for SoraGeocoding. ' \ 'Logger specified must respond to `add(level, message)`.' end nil end def add(level, message) return unless log_message_at_level?(level) case level when ::Logger::DEBUG, ::Logger::INFO puts message when ::Logger::WARN warn message when ::Logger::ERROR raise message when ::Logger::FATAL raise message end end private def valid_level?(level) LOG_LEVEL.keys.include?(level) end def log_message_at_level?(level) level >= SoraGeocoding.config.logger_level end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sora_geocoding-0.2.2 | lib/sora_geocoding/logger.rb |
sora_geocoding-0.2.0 | lib/sora_geocoding/logger.rb |
sora_geocoding-0.1.0 | lib/sora_geocoding/logger.rb |