aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorsonots <sonots@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-18 10:45:40 +0000
committersonots <sonots@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-18 10:45:40 +0000
commita0409533866991529136224b549f53f2ab61c8e4 (patch)
tree85b7685702092ba264dccae8e0c5e8b2cb78bb54 /lib
parentec2f63167ea71880f78cf73a3b676425655f78cb (diff)
downloadruby-a0409533866991529136224b549f53f2ab61c8e4.tar.gz
Allow specifying logger parameters in constructor
* lib/logger.rb: Allow specifying logger prameters such as level, progname, datetime_format, formatter in constructor [Bug #12224] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/logger.rb38
1 files changed, 34 insertions, 4 deletions
diff --git a/lib/logger.rb b/lib/logger.rb
index f3a29fa47d..dc3d748dbc 100644
--- a/lib/logger.rb
+++ b/lib/logger.rb
@@ -184,6 +184,12 @@ require 'monitor'
#
# # :debug < :info < :warn < :error < :fatal < :unknown
#
+# 4. Constructor
+#
+# Logger.new(logdev, level: Logger::INFO)
+# Logger.new(logdev, level: :info)
+# Logger.new(logdev, level: 'INFO')
+#
# == Format
#
# Log messages are rendered in the output stream in a certain format by
@@ -200,6 +206,10 @@ require 'monitor'
# logger.datetime_format = '%Y-%m-%d %H:%M:%S'
# # e.g. "2004-01-03 00:54:26"
#
+# or via the constructor.
+#
+# Logger.new(logdev, datetime_format: '%Y-%m-%d %H:%M:%S')
+#
# Or, you may change the overall format via the #formatter= method.
#
# logger.formatter = proc do |severity, datetime, progname, msg|
@@ -207,6 +217,12 @@ require 'monitor'
# end
# # e.g. "2005-09-22 08:51:08 +0900: hello world"
#
+# or via the constructor.
+#
+# Logger.new(logdev, formatter: proc {|severity, datetime, progname, msg|
+# "#{datetime}: #{msg}\n"
+# })
+#
class Logger
VERSION = "1.2.7"
_, name, rev = %w$Id$
@@ -326,6 +342,10 @@ class Logger
# :call-seq:
# Logger.new(logdev, shift_age = 7, shift_size = 1048576)
# Logger.new(logdev, shift_age = 'weekly')
+ # Logger.new(logdev, level: :info)
+ # Logger.new(logdev, progname: 'progname')
+ # Logger.new(logdev, formatter: formatter)
+ # Logger.new(logdev, datetime_format: '%Y-%m-%d %H:%M:%S')
#
# === Args
#
@@ -338,16 +358,26 @@ class Logger
# +shift_size+::
# Maximum logfile size (only applies when +shift_age+ is a number). Default
# value is 1MiB.
+ # +level+::
+ # Logging severity threshold. Default values is Logger::DEBUG.
+ # +progname+::
+ # Program name to include in log messages. Default value is nil.
+ # +formatter+::
+ # Logging formatter. Default values is an instance of Logger::Formatter.
+ # +datetime_format+::
+ # Date and time format. Default value is '%Y-%m-%d %H:%M:%S'.
#
# === Description
#
# Create an instance.
#
- def initialize(logdev, shift_age = 0, shift_size = 1048576)
- @progname = nil
- @level = DEBUG
+ def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
+ progname: nil, formatter: nil, datetime_format: nil)
+ self.level = level
+ self.progname = progname
@default_formatter = Formatter.new
- @formatter = nil
+ self.datetime_format = datetime_format
+ self.formatter = formatter
@logdev = nil
if logdev
@logdev = LogDevice.new(logdev, :shift_age => shift_age,