diff options
Diffstat (limited to 'lib/logger')
-rw-r--r-- | lib/logger/errors.rb | 2 | ||||
-rw-r--r-- | lib/logger/formatter.rb | 8 | ||||
-rw-r--r-- | lib/logger/log_device.rb | 8 | ||||
-rw-r--r-- | lib/logger/logger.gemspec | 7 | ||||
-rw-r--r-- | lib/logger/severity.rb | 19 | ||||
-rw-r--r-- | lib/logger/version.rb | 2 |
6 files changed, 31 insertions, 15 deletions
diff --git a/lib/logger/errors.rb b/lib/logger/errors.rb index e8925e14ac..88581793f0 100644 --- a/lib/logger/errors.rb +++ b/lib/logger/errors.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -# not used after 1.2.7. just for compat. class Logger + # not used after 1.2.7. just for compat. class Error < RuntimeError # :nodoc: end class ShiftingError < Error # :nodoc: diff --git a/lib/logger/formatter.rb b/lib/logger/formatter.rb index 6a135b6fab..c634dbf34d 100644 --- a/lib/logger/formatter.rb +++ b/lib/logger/formatter.rb @@ -3,7 +3,8 @@ class Logger # Default formatter for log messages. class Formatter - Format = "%s, [%s#%d] %5s -- %s: %s\n" + Format = "%.1s, [%s #%d] %5s -- %s: %s\n" + DatetimeFormat = "%Y-%m-%dT%H:%M:%S.%6N" attr_accessor :datetime_format @@ -12,14 +13,13 @@ class Logger end def call(severity, time, progname, msg) - Format % [severity[0..0], format_datetime(time), Process.pid, severity, progname, - msg2str(msg)] + sprintf(Format, severity, format_datetime(time), Process.pid, severity, progname, msg2str(msg)) end private def format_datetime(time) - time.strftime(@datetime_format || "%Y-%m-%dT%H:%M:%S.%6N ") + time.strftime(@datetime_format || DatetimeFormat) end def msg2str(msg) diff --git a/lib/logger/log_device.rb b/lib/logger/log_device.rb index 96d77b7b6a..84277a2656 100644 --- a/lib/logger/log_device.rb +++ b/lib/logger/log_device.rb @@ -79,8 +79,10 @@ class Logger def set_dev(log) if log.respond_to?(:write) and log.respond_to?(:close) @dev = log - if log.respond_to?(:path) - @filename = log.path + if log.respond_to?(:path) and path = log.path + if File.exist?(path) + @filename = path + end end else @dev = open_logfile(log) @@ -135,7 +137,7 @@ class Logger end end - if /mswin|mingw|cygwin/ =~ RUBY_PLATFORM + if /mswin|mingw|cygwin/ =~ RbConfig::CONFIG['host_os'] def lock_shift_log yield end diff --git a/lib/logger/logger.gemspec b/lib/logger/logger.gemspec index ccd4e70db7..5e8232e4ab 100644 --- a/lib/logger/logger.gemspec +++ b/lib/logger/logger.gemspec @@ -18,10 +18,5 @@ Gem::Specification.new do |spec| spec.files = Dir.glob("lib/**/*.rb") + ["logger.gemspec"] spec.require_paths = ["lib"] - spec.required_ruby_version = ">= 2.3.0" - - spec.add_development_dependency "bundler", ">= 0" - spec.add_development_dependency "rake", ">= 12.3.3" - spec.add_development_dependency "test-unit" - spec.add_development_dependency "rdoc" + spec.required_ruby_version = ">= 2.5.0" end diff --git a/lib/logger/severity.rb b/lib/logger/severity.rb index b38afb7d22..e96fb0d320 100644 --- a/lib/logger/severity.rb +++ b/lib/logger/severity.rb @@ -15,5 +15,24 @@ class Logger FATAL = 4 # An unknown message that should always be logged. UNKNOWN = 5 + + LEVELS = { + "debug" => DEBUG, + "info" => INFO, + "warn" => WARN, + "error" => ERROR, + "fatal" => FATAL, + "unknown" => UNKNOWN, + } + private_constant :LEVELS + + def self.coerce(severity) + if severity.is_a?(Integer) + severity + else + key = severity.to_s.downcase + LEVELS[key] || raise(ArgumentError, "invalid log level: #{severity}") + end + end end end diff --git a/lib/logger/version.rb b/lib/logger/version.rb index e0f71830d2..202b6e4fba 100644 --- a/lib/logger/version.rb +++ b/lib/logger/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class Logger - VERSION = "1.4.3" + VERSION = "1.6.0" end |