summaryrefslogtreecommitdiff
path: root/lib/logger
diff options
context:
space:
mode:
Diffstat (limited to 'lib/logger')
-rw-r--r--lib/logger/errors.rb2
-rw-r--r--lib/logger/formatter.rb8
-rw-r--r--lib/logger/log_device.rb8
-rw-r--r--lib/logger/logger.gemspec7
-rw-r--r--lib/logger/period.rb16
-rw-r--r--lib/logger/severity.rb19
-rw-r--r--lib/logger/version.rb2
7 files changed, 39 insertions, 23 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/period.rb b/lib/logger/period.rb
index 0a291dbbbe..a0359defe3 100644
--- a/lib/logger/period.rb
+++ b/lib/logger/period.rb
@@ -8,14 +8,14 @@ class Logger
def next_rotate_time(now, shift_age)
case shift_age
- when 'daily'
+ when 'daily', :daily
t = Time.mktime(now.year, now.month, now.mday) + SiD
- when 'weekly'
+ when 'weekly', :weekly
t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday)
- when 'monthly'
+ when 'monthly', :monthly
t = Time.mktime(now.year, now.month, 1) + SiD * 32
return Time.mktime(t.year, t.month, 1)
- when 'now', 'everytime'
+ when 'now', 'everytime', :now, :everytime
return now
else
raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"
@@ -30,13 +30,13 @@ class Logger
def previous_period_end(now, shift_age)
case shift_age
- when 'daily'
+ when 'daily', :daily
t = Time.mktime(now.year, now.month, now.mday) - SiD / 2
- when 'weekly'
+ when 'weekly', :weekly
t = Time.mktime(now.year, now.month, now.mday) - (SiD * now.wday + SiD / 2)
- when 'monthly'
+ when 'monthly', :monthly
t = Time.mktime(now.year, now.month, 1) - SiD / 2
- when 'now', 'everytime'
+ when 'now', 'everytime', :now, :everytime
return now
else
raise ArgumentError, "invalid :shift_age #{shift_age.inspect}, should be daily, weekly, monthly, or everytime"
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