diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/logger.rb | 11 | ||||
-rw-r--r-- | lib/logger/log_device.rb | 5 |
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 |