class Geocoder::Logger
def kernel_log(level, message)
def kernel_log(level, message) case level when :debug, :info puts message when :warn warn message when :error raise message when :fatal fail message end end
def log(level, message)
def log(level, message) return nil unless valid_level?(level) logger = Geocoder.config[:logger] if logger == :kernel kernel_log(level, message) elsif logger.kind_of? ::Logger logger.add(SEVERITY[level], message) else raise Geocoder::ConfigurationError, "Please specify valid logger for Geocoder. " + "Logger specified must be :kernel or must respond to `add(level, message)`." end nil end
def valid_level?(level)
def valid_level?(level) [:debug, :info, :warn, :error, :fatal].include? level end