diff --git a/lib/geocoder.rb b/lib/geocoder.rb index 3dd4203c84e9e74f5d05847b2a94922871f14adb..8c4d2b8ce5122ce19265e7a8891739619571f028 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -1,4 +1,5 @@ require "geocoder/configuration" +require "geocoder/logger" require "geocoder/query" require "geocoder/calculations" require "geocoder/exceptions" diff --git a/lib/geocoder/logger.rb b/lib/geocoder/logger.rb index 79120185be787c343c38e2189cb09c9abbeb15be..c39c513984aaa6f1f3cabdf2dd51de12186726da 100644 --- a/lib/geocoder/logger.rb +++ b/lib/geocoder/logger.rb @@ -10,15 +10,15 @@ module Geocoder include Singleton SEVERITY = { - debug: Logger::Severity::DEBUG, - info: Logger::Severity::INFO, - warn: Logger::Severity::WARN, - error: Logger::Severity::ERROR, - fatal: Logger::Severity::FATAL + debug: ::Logger::DEBUG, + info: ::Logger::INFO, + warn: ::Logger::WARN, + error: ::Logger::ERROR, + fatal: ::Logger::FATAL } def log(level, message) - logger = config[:logger] + logger = Geocoder.config[:logger] return true unless logger && valid_level?(level) if logger == :default @@ -44,7 +44,7 @@ module Geocoder end def valid_level?(level) - [:debug, :info, :warn, :error, :fatal].includes? level + [:debug, :info, :warn, :error, :fatal].include? level end end end diff --git a/test/unit/logger_test.rb b/test/unit/logger_test.rb new file mode 100644 index 0000000000000000000000000000000000000000..166dc915a22fd2344f431d60d6dca4a6764e042c --- /dev/null +++ b/test/unit/logger_test.rb @@ -0,0 +1,35 @@ +# encoding: utf-8 +$: << File.join(File.dirname(__FILE__), "..") +require 'test_helper' +require 'logger' +require 'tempfile' + +class LoggerTest < GeocoderTestCase + + def setup + @tempfile = Tempfile.new("log") + @logger = Logger.new(@tempfile.path) + Geocoder.configure(logger: @logger) + end + + def teardown + @logger.close + @tempfile.close + end + + def test_nil_logger_does_not_log + Geocoder.configure(logger: nil) + assert_equal true, Geocoder.log(:warn, "should not log") + end + + def test_set_logger_logs + Geocoder.log(:warn, "should log") + assert_equal "should log\n", @tempfile.read + end + + def test_set_logger_does_not_log_severity_too_low + @logger.level = Logger::ERROR + assert_equal true, Geocoder.log(:info, "should not log") + assert_equal "", @tempfile.read + end +end