Skip to content

Commit 30a6070

Browse files
authored
Merge pull request #119 from viralpraxis/add-skip-header-option
[Feature #21133] Add `skip_header` option
2 parents 7922086 + 552b075 commit 30a6070

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

lib/logger.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -591,11 +591,14 @@ def fatal!; self.level = FATAL; end
591591
# - +reraise_write_errors+: An array of exception classes, which will
592592
# be reraised if there is an error when writing to the log device.
593593
# The default is to swallow all exceptions raised.
594+
# - +skip_header+: If +true+, prevents the logger from writing a header
595+
# when creating a new log file. The default is +false+, meaning
596+
# the header will be written as usual.
594597
#
595598
def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
596599
progname: nil, formatter: nil, datetime_format: nil,
597600
binmode: false, shift_period_suffix: '%Y%m%d',
598-
reraise_write_errors: [])
601+
reraise_write_errors: [], skip_header: false)
599602
self.level = level
600603
self.progname = progname
601604
@default_formatter = Formatter.new
@@ -608,7 +611,8 @@ def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
608611
shift_size: shift_size,
609612
shift_period_suffix: shift_period_suffix,
610613
binmode: binmode,
611-
reraise_write_errors: reraise_write_errors)
614+
reraise_write_errors: reraise_write_errors,
615+
skip_header: skip_header)
612616
end
613617
end
614618

lib/logger/log_device.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@ class LogDevice
1111
attr_reader :filename
1212
include MonitorMixin
1313

14-
def initialize(log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil, binmode: false, reraise_write_errors: [])
14+
def initialize(
15+
log = nil, shift_age: nil, shift_size: nil, shift_period_suffix: nil,
16+
binmode: false, reraise_write_errors: [], skip_header: false
17+
)
1518
@dev = @filename = @shift_age = @shift_size = @shift_period_suffix = nil
1619
@binmode = binmode
1720
@reraise_write_errors = reraise_write_errors
21+
@skip_header = skip_header
1822
mon_initialize
1923
set_dev(log)
2024
set_file(shift_age, shift_size, shift_period_suffix) if @filename
@@ -132,7 +136,7 @@ def create_logfile(filename)
132136
logdev = fixup_mode(logdev)
133137
logdev.sync = true
134138
logdev.binmode if @binmode
135-
add_log_header(logdev)
139+
add_log_header(logdev) unless @skip_header
136140
logdev.flock(File::LOCK_UN)
137141
logdev
138142
rescue Errno::EEXIST

test/logger/test_logdevice.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,12 @@ def test_shifting_age_in_multiprocess
502502
end
503503
end
504504

505+
def test_open_without_header
506+
d(@filename, skip_header: true)
507+
508+
assert_equal("", File.read(@filename))
509+
end
510+
505511
def test_open_logfile_in_multiprocess
506512
tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
507513
logfile = tmpfile.path

0 commit comments

Comments
 (0)