summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/logger.rb11
-rw-r--r--lib/logger/log_device.rb5
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/logger.rb b/lib/logger.rb
index 4794911a69..ddd80176df 100644
--- a/lib/logger.rb
+++ b/lib/logger.rb
@@ -365,6 +365,8 @@ class Logger
# 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'.
+ # +binmode+::
+ # Use binany mode on the log device. Defaul value is false.
# +shift_period_suffix+::
# The log file suffix format for +daily+, +weekly+ or +monthly+ rotation.
# Default is '%Y%m%d'.
@@ -375,7 +377,7 @@ class Logger
#
def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
progname: nil, formatter: nil, datetime_format: nil,
- shift_period_suffix: '%Y%m%d')
+ binmode: false, shift_period_suffix: '%Y%m%d')
self.level = level
self.progname = progname
@default_formatter = Formatter.new
@@ -383,9 +385,10 @@ class Logger
self.formatter = formatter
@logdev = nil
if logdev
- @logdev = LogDevice.new(logdev, :shift_age => shift_age,
- :shift_size => shift_size,
- :shift_period_suffix => shift_period_suffix)
+ @logdev = LogDevice.new(logdev, shift_age: shift_age,
+ shift_size: shift_size,
+ shift_period_suffix: shift_period_suffix,
+ binmode: binmode)
end
end
diff --git a/lib/logger/log_device.rb b/lib/logger/log_device.rb
index c6dc43c11a..5661f5ce14 100644
--- a/lib/logger/log_device.rb
+++ b/lib/logger/log_device.rb
@@ -9,8 +9,9 @@ class Logger
attr_reader :filename
include MonitorMixin
- def initialize(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil)
+ def initialize(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: false)
@dev = @filename = @shift_age = @shift_size = @shift_period_suffix = nil
+ @binmode = binmode
mon_initialize
set_dev(log)
if @filename
@@ -82,6 +83,7 @@ class Logger
else
@dev = open_logfile(log)
@dev.sync = true
+ @dev.binmode if @binmode
@filename = log
end
end
@@ -99,6 +101,7 @@ class Logger
logdev = File.open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))
logdev.flock(File::LOCK_EX)
logdev.sync = true
+ logdev.binmode if @binmode
add_log_header(logdev)
logdev.flock(File::LOCK_UN)
rescue Errno::EEXIST