fluentd 1.11.0 → 1.11.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +92 -1
  3. data/example/copy_roundrobin.conf +3 -3
  4. data/example/counter.conf +1 -1
  5. data/example/filter_stdout.conf +2 -2
  6. data/example/{in_dummy_blocks.conf → in_sample_blocks.conf} +4 -4
  7. data/example/{in_dummy_with_compression.conf → in_sample_with_compression.conf} +3 -3
  8. data/example/logevents.conf +5 -5
  9. data/example/multi_filters.conf +1 -1
  10. data/example/out_exec_filter.conf +2 -2
  11. data/example/out_forward.conf +1 -1
  12. data/example/out_forward_buf_file.conf +1 -1
  13. data/example/out_forward_client.conf +5 -5
  14. data/example/out_forward_heartbeat_none.conf +1 -1
  15. data/example/out_forward_sd.conf +1 -1
  16. data/example/out_forward_shared_key.conf +2 -2
  17. data/example/out_forward_tls.conf +1 -1
  18. data/example/out_forward_users.conf +3 -3
  19. data/example/out_null.conf +4 -4
  20. data/example/secondary_file.conf +1 -1
  21. data/fluentd.gemspec +6 -6
  22. data/lib/fluent/command/fluentd.rb +11 -0
  23. data/lib/fluent/log.rb +33 -3
  24. data/lib/fluent/match.rb +9 -0
  25. data/lib/fluent/plugin/buffer.rb +49 -40
  26. data/lib/fluent/plugin/buffer/chunk.rb +2 -1
  27. data/lib/fluent/plugin/formatter.rb +24 -0
  28. data/lib/fluent/plugin/formatter_hash.rb +3 -1
  29. data/lib/fluent/plugin/formatter_json.rb +3 -1
  30. data/lib/fluent/plugin/formatter_ltsv.rb +3 -1
  31. data/lib/fluent/plugin/formatter_out_file.rb +3 -1
  32. data/lib/fluent/plugin/formatter_single_value.rb +3 -1
  33. data/lib/fluent/plugin/formatter_tsv.rb +3 -1
  34. data/lib/fluent/plugin/in_dummy.rb +2 -123
  35. data/lib/fluent/plugin/in_exec.rb +4 -2
  36. data/lib/fluent/plugin/in_http.rb +148 -77
  37. data/lib/fluent/plugin/in_sample.rb +141 -0
  38. data/lib/fluent/plugin/in_tail.rb +2 -2
  39. data/lib/fluent/plugin/out_http.rb +20 -2
  40. data/lib/fluent/plugin/output.rb +8 -5
  41. data/lib/fluent/plugin/parser_json.rb +5 -2
  42. data/lib/fluent/plugin_helper/cert_option.rb +5 -8
  43. data/lib/fluent/plugin_helper/child_process.rb +3 -2
  44. data/lib/fluent/plugin_helper/inject.rb +2 -1
  45. data/lib/fluent/plugin_helper/socket.rb +1 -1
  46. data/lib/fluent/supervisor.rb +11 -6
  47. data/lib/fluent/system_config.rb +2 -1
  48. data/lib/fluent/version.rb +1 -1
  49. data/test/command/test_binlog_reader.rb +22 -6
  50. data/test/plugin/test_buffer.rb +4 -0
  51. data/test/plugin/test_filter_stdout.rb +6 -1
  52. data/test/plugin/test_formatter_hash.rb +6 -3
  53. data/test/plugin/test_formatter_json.rb +14 -4
  54. data/test/plugin/test_formatter_ltsv.rb +13 -5
  55. data/test/plugin/test_formatter_out_file.rb +35 -14
  56. data/test/plugin/test_formatter_single_value.rb +12 -6
  57. data/test/plugin/test_formatter_tsv.rb +12 -4
  58. data/test/plugin/test_in_exec.rb +18 -0
  59. data/test/plugin/test_in_http.rb +57 -0
  60. data/test/plugin/{test_in_dummy.rb → test_in_sample.rb} +25 -25
  61. data/test/plugin/test_in_tail.rb +3 -0
  62. data/test/plugin/test_out_file.rb +23 -18
  63. data/test/plugin/test_output.rb +12 -0
  64. data/test/plugin_helper/data/cert/empty.pem +0 -0
  65. data/test/plugin_helper/test_cert_option.rb +7 -0
  66. data/test/plugin_helper/test_child_process.rb +15 -0
  67. data/test/plugin_helper/test_compat_parameters.rb +7 -2
  68. data/test/plugin_helper/test_http_server_helper.rb +5 -0
  69. data/test/plugin_helper/test_inject.rb +13 -0
  70. data/test/plugin_helper/test_server.rb +34 -0
  71. data/test/plugin_helper/test_socket.rb +8 -0
  72. data/test/test_formatter.rb +34 -10
  73. data/test/test_log.rb +44 -0
  74. data/test/test_match.rb +11 -0
  75. data/test/test_output.rb +6 -1
  76. data/test/test_static_config_analysis.rb +2 -2
  77. data/test/test_supervisor.rb +26 -0
  78. metadata +11 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 269cadf10ed4159e0c5279177cde46de14d563637b38ccadc71da090a098a22e
4
- data.tar.gz: 9bf1dca5f46b1f3b245231c0e08b3b709add909840c3241bf29401952e02f27a
3
+ metadata.gz: 83bcc9640169d819af2a9336cc0bae773d4104b056467b6656115bba46565e02
4
+ data.tar.gz: a4e1c27ab6ba4454ae5aa8c2db25072503f10f21b158aecc686f2499e9416d48
5
5
  SHA512:
6
- metadata.gz: 115e9f075e91136de66003ced2eda6076c1cff31c1e8edae5bb063f4c97420e4f832bcf6539a1ac4ee50bbe28d2050a6782840e88c951fa8fcbb52c66a889569
7
- data.tar.gz: 25ebff981ebc41c4b6c0de4a6710350a07653be263019a138bb7be62d97dd6593bff67b7dd4d6ca4d37d0f84427b05d4c9b06f56cc9bc344fa46e0cfa82a7d68
6
+ metadata.gz: de9b224867b2b9dc5394889246e76b72449b1df6dfb8ddb982260ef0521d3a66d86d7c1cae319ddaa9c8cd00264be1c16539389c42da435c539534b537b567be
7
+ data.tar.gz: 4a077991b270c84aa8ab21e746ce75e06a5061ec70a2acd43fdac77127eb627d86241b18238f156a510decd56b8a311a54f51eaa723b69947cbd216c03accd9d
@@ -1,5 +1,96 @@
1
1
  # v1.11
2
2
 
3
+ ## Release v1.11.5 - 2020/11/06
4
+
5
+ ### Enhancement
6
+
7
+ * formatter: Provide `newline` parameter to support `CRLF`
8
+ https://github.com/fluent/fluentd/pull/3152
9
+ * out_http: adding support for intermediate certificates
10
+ https://github.com/fluent/fluentd/pull/3146
11
+
12
+ ### Bug fix
13
+
14
+ * Fix a bug that windows service isn't stopped gracefuly
15
+ https://github.com/fluent/fluentd/pull/3156
16
+
17
+ ## Release v1.11.4 - 2020/10/13
18
+
19
+ ### Enhancement
20
+
21
+ * inject: Support `unixtime_millis` in `time_type` parameter
22
+ https://github.com/fluent/fluentd/pull/3145
23
+
24
+ ### Bug fix
25
+
26
+ * out_http: Fix broken data with `json_array true`
27
+ https://github.com/fluent/fluentd/pull/3144
28
+ * output: Fix wrong logging issue for `${chunk_id}`
29
+ https://github.com/fluent/fluentd/pull/3134
30
+
31
+ ## Release v1.11.3 - 2020/09/30
32
+
33
+ ### Enhancement
34
+
35
+ * in_exec: Add `connect_mode` parameter to read stderr
36
+ https://github.com/fluent/fluentd/pull/3108
37
+ * parser_json: Improve the performance
38
+ https://github.com/fluent/fluentd/pull/3109
39
+ * log: Add `ignore_same_log_interval` parameter
40
+ https://github.com/fluent/fluentd/pull/3119
41
+ * Upgrade win32 gems
42
+ https://github.com/fluent/fluentd/pull/3100
43
+ * Refactoring code
44
+ https://github.com/fluent/fluentd/pull/3094
45
+ https://github.com/fluent/fluentd/pull/3118
46
+
47
+ ### Bug fix
48
+
49
+ * buffer: Fix calculation of timekey stats
50
+ https://github.com/fluent/fluentd/pull/3018
51
+ * buffer: fix binmode usage for prevent gc
52
+ https://github.com/fluent/fluentd/pull/3138
53
+
54
+ ## Release v1.11.2 - 2020/08/04
55
+
56
+ ### Enhancement
57
+
58
+ * `in_dummy` renamed to `in_sample`
59
+ https://github.com/fluent/fluentd/pull/3065
60
+ * Allow regular expression in filter/match directive
61
+ https://github.com/fluent/fluentd/pull/3071
62
+ * Refactoring code
63
+ https://github.com/fluent/fluentd/pull/3051
64
+
65
+ ### Bug fix
66
+
67
+ * buffer: Fix log message for `chunk_limit_records` case
68
+ https://github.com/fluent/fluentd/pull/3079
69
+ * buffer: Fix timekey optimization for non-windows platform
70
+ https://github.com/fluent/fluentd/pull/3092
71
+ * cert: Raise an error for broken certificate file
72
+ https://github.com/fluent/fluentd/pull/3086
73
+ * cert: Set TLS ciphers list correcty on older OpenSSL
74
+ https://github.com/fluent/fluentd/pull/3093
75
+
76
+ ## Release v1.11.1 - 2020/06/22
77
+
78
+ ### Enhancement
79
+
80
+ * in_http: Add `dump_error_log` parameter
81
+ https://github.com/fluent/fluentd/pull/3035
82
+ * in_http: Improve time field handling
83
+ https://github.com/fluent/fluentd/pull/3046
84
+ * Refactoring code
85
+ https://github.com/fluent/fluentd/pull/3047
86
+
87
+ ### Bug fix
88
+
89
+ * in_tail: Use actual path instead of based pattern for ignore list
90
+ https://github.com/fluent/fluentd/pull/3042
91
+ * child_process helper: Fix child process failure due to SIGPIPE if the command uses stdout
92
+ https://github.com/fluent/fluentd/pull/3044
93
+
3
94
  ## Release v1.11.0 - 2020/06/04
4
95
 
5
96
  ### New feature
@@ -10,7 +101,7 @@
10
101
  ### Enhancement
11
102
 
12
103
  * parser_syslog: Support any `time_format` for RFC3164 string parser
13
- https://github.com/fluent/fluentd/pull/2988
104
+ https://github.com/fluent/fluentd/pull/3014
14
105
  * parser_syslog: Add new parser for RFC5424
15
106
  https://github.com/fluent/fluentd/pull/3015
16
107
  * Refactoring code
@@ -1,12 +1,12 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  @label @test
4
4
  tag test.copy
5
5
  auto_increment_key id
6
6
  </source>
7
7
 
8
8
  <source>
9
- @type dummy
9
+ @type sample
10
10
  @label @test
11
11
  tag test.rr
12
12
  auto_increment_key id
@@ -36,4 +36,4 @@
36
36
  output_type ltsv
37
37
  </store>
38
38
  </match>
39
- </label>
39
+ </label>
@@ -8,7 +8,7 @@
8
8
  </system>
9
9
 
10
10
  <source>
11
- @type dummy
11
+ @type sample
12
12
  tag "test.data"
13
13
  auto_increment_key number
14
14
  </source>
@@ -1,6 +1,6 @@
1
1
  <source>
2
- @type dummy
3
- tag dummy
2
+ @type sample
3
+ tag sample
4
4
  </source>
5
5
 
6
6
  <filter **>
@@ -1,11 +1,11 @@
1
1
  <source>
2
- @type dummy
3
- tag dummy
2
+ @type sample
3
+ tag sample
4
4
  rate 100
5
- dummy {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
5
+ sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
6
6
  </source>
7
7
 
8
- <match dummy>
8
+ <match sample>
9
9
  @type null
10
10
  never_flush true
11
11
  <buffer>
@@ -1,16 +1,16 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  @label @main
4
4
  tag "test.data"
5
5
  size 2
6
6
  rate 10
7
- dummy {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
7
+ sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
8
8
  auto_increment_key number
9
9
  </source>
10
10
 
11
11
  <label @main>
12
12
  <match test.data>
13
- @type buffered_stdout
13
+ @type stdout
14
14
  <buffer>
15
15
  @type file
16
16
  path "#{Dir.pwd}/compressed_buffers"
@@ -1,10 +1,10 @@
1
1
  <source>
2
- @type dummy
3
- @label @dummylog
2
+ @type sample
3
+ @label @samplelog
4
4
  tag "data"
5
- dummy {"message":"yay"}
5
+ sample {"message":"yay"}
6
6
  </source>
7
- <label @dummylog>
7
+ <label @samplelog>
8
8
  <match **>
9
9
  @type stdout
10
10
  </match>
@@ -22,4 +22,4 @@
22
22
  # hostname_key "host"
23
23
  # </inject>
24
24
  # </match>
25
- </label>
25
+ </label>
@@ -1,7 +1,7 @@
1
1
  # This example is to measure optimized filter pipeline performance.
2
2
 
3
3
  <source>
4
- @type dummy
4
+ @type sample
5
5
  tag test
6
6
  size 1000
7
7
  </source>
@@ -1,10 +1,10 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  @label @exec
4
4
  tag exec_input
5
5
  rate 10
6
6
  auto_increment_key num
7
- dummy {"data":"mydata"}
7
+ sample {"data":"mydata"}
8
8
  </source>
9
9
 
10
10
  <label @exec>
@@ -1,5 +1,5 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
 
@@ -1,5 +1,5 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
 
@@ -1,21 +1,21 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
  <source>
6
- @type dummy
6
+ @type sample
7
7
  tag test2
8
8
  </source>
9
9
  <source>
10
- @type dummy
10
+ @type sample
11
11
  tag test3
12
12
  </source>
13
13
  <source>
14
- @type dummy
14
+ @type sample
15
15
  tag test4
16
16
  </source>
17
17
  <source>
18
- @type dummy
18
+ @type sample
19
19
  tag test5
20
20
  </source>
21
21
 
@@ -1,5 +1,5 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
 
@@ -1,5 +1,5 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
 
@@ -1,9 +1,9 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
  <source>
6
- @type dummy
6
+ @type sample
7
7
  tag test2
8
8
  </source>
9
9
 
@@ -1,5 +1,5 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
 
@@ -1,13 +1,13 @@
1
1
  <source>
2
- @type dummy
2
+ @type sample
3
3
  tag test
4
4
  </source>
5
5
  <source>
6
- @type dummy
6
+ @type sample
7
7
  tag test2
8
8
  </source>
9
9
  <source>
10
- @type dummy
10
+ @type sample
11
11
  tag test3
12
12
  </source>
13
13
 
@@ -2,17 +2,17 @@
2
2
  # bundle exec bin/fluentd -c example/out_buffered_null.conf
3
3
  # (+ --emit-error-log-interval 10)
4
4
  <source>
5
- @type dummy
6
- tag dummy
5
+ @type sample
6
+ tag sample
7
7
  rate 500000000
8
- dummy [
8
+ sample [
9
9
  {"message": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
10
10
  {"message": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"},
11
11
  {"message": "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"}
12
12
  ]
13
13
  </source>
14
14
 
15
- <match dummy.**>
15
+ <match sample.**>
16
16
  @type null
17
17
  <buffer>
18
18
  flush_interval 60s
@@ -3,7 +3,7 @@
3
3
  </system>
4
4
 
5
5
  <source>
6
- @type dummy
6
+ @type sample
7
7
  tag test
8
8
  </source>
9
9
 
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.add_runtime_dependency("msgpack", [">= 1.3.1", "< 2.0.0"])
22
22
  gem.add_runtime_dependency("yajl-ruby", ["~> 1.0"])
23
23
  gem.add_runtime_dependency("cool.io", [">= 1.4.5", "< 2.0.0"])
24
- gem.add_runtime_dependency("serverengine", [">= 2.0.4", "< 3.0.0"])
24
+ gem.add_runtime_dependency("serverengine", [">= 2.2.2", "< 3.0.0"])
25
25
  gem.add_runtime_dependency("http_parser.rb", [">= 0.5.1", "< 0.7.0"])
26
26
  gem.add_runtime_dependency("sigdump", ["~> 0.2.2"])
27
27
  gem.add_runtime_dependency("tzinfo", [">= 1.0", "< 3.0"])
@@ -32,11 +32,11 @@ Gem::Specification.new do |gem|
32
32
  fake_platform = ENV['GEM_BUILD_FAKE_PLATFORM'].to_s
33
33
  gem.platform = fake_platform unless fake_platform.empty?
34
34
  if /mswin|mingw/ =~ fake_platform || (/mswin|mingw/ =~ RUBY_PLATFORM && fake_platform.empty?)
35
- gem.add_runtime_dependency("win32-service", ["~> 0.8.3"])
36
- gem.add_runtime_dependency("win32-ipc", ["~> 0.6.1"])
37
- gem.add_runtime_dependency("win32-event", ["~> 0.6.1"])
38
- gem.add_runtime_dependency("windows-pr", ["~> 1.2.5"])
39
- gem.add_runtime_dependency("certstore_c", ["~> 0.1.2"])
35
+ gem.add_runtime_dependency("win32-service", ["~> 2.1.5"])
36
+ gem.add_runtime_dependency("win32-ipc", ["~> 0.7.0"])
37
+ gem.add_runtime_dependency("win32-event", ["~> 0.6.3"])
38
+ gem.add_runtime_dependency("windows-pr", ["~> 1.2.6"])
39
+ gem.add_runtime_dependency("certstore_c", ["~> 0.1.7"])
40
40
  end
41
41
 
42
42
  gem.add_development_dependency("rake", ["~> 13.0"])
@@ -185,6 +185,10 @@ if Fluent.windows?
185
185
  opts[:regwinsvcautostart] = s
186
186
  }
187
187
 
188
+ op.on('--[no-]reg-winsvc-delay-start', "Automatically start the Windows Service at boot with delay. (only effective with '--reg-winsvc i' and '--reg-winsvc-auto-start') (Windows only)") {|s|
189
+ opts[:regwinsvcdelaystart] = s
190
+ }
191
+
188
192
  op.on('--reg-winsvc-fluentdopt OPTION', "specify fluentd option parameters for Windows Service. (Windows only)") {|s|
189
193
  opts[:fluentdopt] = s
190
194
  }
@@ -285,6 +289,13 @@ if winsvcinstmode = opts[:regwinsvc]
285
289
  dependencies: [""],
286
290
  display_name: opts[:winsvc_display_name]
287
291
  )
292
+
293
+ if opts[:regwinsvcdelaystart]
294
+ Service.configure(
295
+ service_name: opts[:winsvc_name],
296
+ delayed_start: true
297
+ )
298
+ end
288
299
  when 'u'
289
300
  if Service.status(opts[:winsvc_name]).current_state != 'stopped'
290
301
  begin
@@ -113,6 +113,7 @@ module Fluent
113
113
 
114
114
  @suppress_repeated_stacktrace = opts[:suppress_repeated_stacktrace]
115
115
  @ignore_repeated_log_interval = opts[:ignore_repeated_log_interval]
116
+ @ignore_same_log_interval = opts[:ignore_same_log_interval]
116
117
 
117
118
  @process_type = opts[:process_type] # :supervisor, :worker0, :workers Or :standalone
118
119
  @process_type ||= :standalone # to keep behavior of existing code
@@ -141,7 +142,8 @@ module Fluent
141
142
  dl_opts[:log_level] = @level - 1
142
143
  logger = ServerEngine::DaemonLogger.new(@out, dl_opts)
143
144
  clone = self.class.new(logger, suppress_repeated_stacktrace: @suppress_repeated_stacktrace, process_type: @process_type,
144
- worker_id: @worker_id, ignore_repeated_log_interval: @ignore_repeated_log_interval)
145
+ worker_id: @worker_id, ignore_repeated_log_interval: @ignore_repeated_log_interval,
146
+ ignore_same_log_interval: @ignore_same_log_interval)
145
147
  clone.format = @format
146
148
  clone.time_format = @time_format
147
149
  clone.log_event_enabled = @log_event_enabled
@@ -151,7 +153,7 @@ module Fluent
151
153
 
152
154
  attr_reader :format
153
155
  attr_reader :time_format
154
- attr_accessor :log_event_enabled, :ignore_repeated_log_interval
156
+ attr_accessor :log_event_enabled, :ignore_repeated_log_interval, :ignore_same_log_interval
155
157
  attr_accessor :out
156
158
  attr_accessor :level
157
159
  attr_accessor :optional_header, :optional_attrs
@@ -428,6 +430,27 @@ module Fluent
428
430
  (cached_log.msg == message) && (time - cached_log.time <= @ignore_repeated_log_interval)
429
431
  end
430
432
 
433
+ def ignore_same_log?(time, message)
434
+ cached_log = Thread.current[:last_same_log]
435
+ if cached_log.nil?
436
+ Thread.current[:last_same_log] = {message => time}
437
+ return false
438
+ end
439
+
440
+ prev_time = cached_log[message]
441
+ if prev_time
442
+ if (time - prev_time) <= @ignore_same_log_interval
443
+ true
444
+ else
445
+ cached_log[message] = time
446
+ false
447
+ end
448
+ else
449
+ cached_log[message] = time
450
+ false
451
+ end
452
+ end
453
+
431
454
  def suppress_stacktrace?(backtrace)
432
455
  cached_log = Thread.current[:last_repeated_stacktrace]
433
456
  return false if cached_log.nil?
@@ -507,7 +530,11 @@ module Fluent
507
530
  end
508
531
  }
509
532
 
510
- if @ignore_repeated_log_interval
533
+ if @ignore_same_log_interval
534
+ if ignore_same_log?(time, message)
535
+ return nil, nil
536
+ end
537
+ elsif @ignore_repeated_log_interval
511
538
  if ignore_repeated_log?(:last_repeated_log, time, message)
512
539
  return nil, nil
513
540
  else
@@ -569,6 +596,9 @@ module Fluent
569
596
  if logger.instance_variable_defined?(:@ignore_repeated_log_interval)
570
597
  @ignore_repeated_log_interval = logger.instance_variable_get(:@ignore_repeated_log_interval)
571
598
  end
599
+ if logger.instance_variable_defined?(:@ignore_same_log_interval)
600
+ @ignore_same_log_interval = logger.instance_variable_get(:@ignore_same_log_interval)
601
+ end
572
602
 
573
603
  self.format = @logger.format
574
604
  self.time_format = @logger.time_format