fluent-logger 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 460c4365ba58c7558db145e551b806ee8b2afb764454bfbba35e6f6290093317
4
- data.tar.gz: 5166f31570a03e934c217464a2d16706f82bd650581f43d83ee87c53e0952da8
3
+ metadata.gz: 35434f35801a28fb88c9802cfd213caa4a9a052f087241768f676b0f7c67958a
4
+ data.tar.gz: cf2b26bbf41d008c9c3e462a0dcd5e2c23cfbdbc9c08227d31454d4b171abb83
5
5
  SHA512:
6
- metadata.gz: 443b59cb242dc22e0d7ec6e711aefc2274452b5ea19d04af73db8250683f27da15b731af24b137213d91ea1f9c91873e7c5b85302c461c3f312b5d19e4bed2b7
7
- data.tar.gz: 3e1d99bb86d51e2e589621e73ad763de5928e19aa1a15d470fa7adc616a749674df69356b8bd431d07804a8f5925bcb8742c98a560e99f6ff35abf2f423c439e
6
+ metadata.gz: 899bccf2efee5b4c230155e1ef6beb9fa4b1f06b843fb9abd5f87630246f1f112b75200fa0d431de3aeba5e9dbf13e55a97fa3b57945112530cdda57288d1cc7
7
+ data.tar.gz: 8bebd7215231cef3379b5a6e9ccdc72407b0198874d44860033056cc97600dce811a5929cf13533bd42e1954c24fe01b9de5c27037a57a6b4354b6adbe41e393
@@ -9,22 +9,20 @@ jobs:
9
9
  fail-fast: false
10
10
  matrix:
11
11
  ruby:
12
- - '2.7'
13
- - '3.0'
14
- - '3.1'
15
12
  - '3.2'
13
+ - '3.3'
14
+ - '3.4'
16
15
  os:
17
16
  - ubuntu-latest
18
17
  name: Ruby ${{ matrix.ruby }} unit testing on ${{ matrix.os }}
19
18
  steps:
20
- - uses: actions/checkout@v3
19
+ - uses: actions/checkout@v4
21
20
  - uses: ruby/setup-ruby@v1
22
21
  with:
23
22
  ruby-version: ${{ matrix.ruby }}
23
+ bundler-cache: true
24
24
  - name: unit testing
25
25
  env:
26
26
  CI: true
27
27
  run: |
28
- gem install bundler rake
29
- bundle install --jobs 4 --retry 3
30
28
  bundle exec rake spec
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ Release 0.10.0 - 2025/09/04
2
+
3
+ * Add timeout option (#104)
4
+ * gemspec: add logger gem as runtime dependency
5
+
1
6
  Release 0.9.1 - 2023/12/20
2
7
 
3
8
  * Fix invalid message polluting subsequent message
data/Gemfile CHANGED
@@ -1,11 +1,12 @@
1
-
2
1
  source 'https://rubygems.org/'
3
2
 
4
- gem "fluentd", :github => 'fluent/fluentd'
5
-
6
3
  gemspec
7
4
 
8
- gem "simplecov", :require => false
5
+ gem "rake", ">= 0.9.2"
6
+ gem "rspec", ">= 3.0.0"
7
+ gem "rspec-its", ">= 1.1.0"
8
+ gem "timecop", ">= 0.3.0"
9
+ gem "fluentd"
10
+ gem "test-unit"
11
+ gem "simplecov", ">= 0.5.4", require: false
9
12
  gem "simplecov-vim"
10
-
11
- gem 'test-unit'
data/README.md CHANGED
@@ -148,6 +148,10 @@ Use nonblocking write(`IO#write_nonblock`) instead of normal write(`IO#write`).
148
148
 
149
149
  If `false`, `Logger#post` raises an error when nonblocking write gets `EAGAIN` (i.e. `use_nonblock` must be `true`, otherwise this will have no effect). Default: `true`
150
150
 
151
+ #### timeout (Integer)
152
+
153
+ Specify a timeout in seconds for connecting. Default: `0` (Disabled)
154
+
151
155
  #### buffer_overflow_handler (Proc)
152
156
 
153
157
  Pass callback for handling buffer overflow with pending data. See "Buffer overflow" section.
@@ -22,10 +22,6 @@ Gem::Specification.new do |gem|
22
22
  gem.license = "Apache-2.0"
23
23
 
24
24
  gem.add_dependency "msgpack", ">= 1.0.0", "< 2"
25
- gem.add_development_dependency 'rake', '>= 0.9.2'
26
- gem.add_development_dependency 'rspec', '>= 3.0.0'
27
- gem.add_development_dependency 'rspec-its', '>= 1.1.0'
28
- gem.add_development_dependency 'simplecov', '>= 0.5.4'
29
- gem.add_development_dependency 'timecop', '>= 0.3.0'
30
- gem.add_development_dependency 'webrick'
25
+ # logger gem that isn't default gems as of Ruby 3.5
26
+ gem.add_dependency "logger", "~> 1.6"
31
27
  end
@@ -22,6 +22,7 @@ require 'openssl'
22
22
  require 'monitor'
23
23
  require 'logger'
24
24
  require 'json'
25
+ require 'timeout'
25
26
 
26
27
  module Fluent
27
28
  module Logger
@@ -115,6 +116,8 @@ module Fluent
115
116
  @wait_writeable = true
116
117
  @wait_writeable = options[:wait_writeable] if options.key?(:wait_writeable)
117
118
 
119
+ @timeout = options[:timeout] || 0
120
+
118
121
  @last_error = {}
119
122
 
120
123
  begin
@@ -170,7 +173,9 @@ module Fluent
170
173
  if @socket_path
171
174
  @con = UNIXSocket.new(@socket_path)
172
175
  else
173
- @con = TCPSocket.new(@host, @port)
176
+ @con = Timeout.timeout(@timeout) do
177
+ TCPSocket.new(@host, @port)
178
+ end
174
179
  if @tls_options
175
180
  context = OpenSSL::SSL::SSLContext.new
176
181
  if @tls_options[:insecure]
@@ -1,5 +1,5 @@
1
1
  module Fluent
2
2
  module Logger
3
- VERSION = '0.9.1'
3
+ VERSION = '0.10.0'
4
4
  end
5
5
  end
@@ -6,6 +6,7 @@ require 'support/dummy_fluentd'
6
6
  require 'logger'
7
7
  require 'stringio'
8
8
  require 'fluent/logger/fluent_logger/cui'
9
+ require 'timeout'
9
10
 
10
11
  describe Fluent::Logger::FluentLogger do
11
12
  let(:fluentd) {
@@ -434,4 +435,13 @@ describe Fluent::Logger::FluentLogger do
434
435
  }
435
436
  end
436
437
  end
438
+
439
+ it ('support timeout') {
440
+ Timeout::timeout(5) do
441
+ # Use invalid IP address to make sure that the connection will timeout.
442
+ # (192.0.2.0 is a special IP address that can be used in only documentation. Ref. RFC 5737)
443
+ logger = Fluent::Logger::FluentLogger.new(nil, host: '192.0.2.0', port: fluentd.port, timeout: 1)
444
+ expect(logger.last_error).to be_a_kind_of(Timeout::Error)
445
+ end
446
+ }
437
447
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-12-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: msgpack
@@ -31,89 +30,19 @@ dependencies:
31
30
  - !ruby/object:Gem::Version
32
31
  version: '2'
33
32
  - !ruby/object:Gem::Dependency
34
- name: rake
33
+ name: logger
35
34
  requirement: !ruby/object:Gem::Requirement
36
35
  requirements:
37
- - - ">="
36
+ - - "~>"
38
37
  - !ruby/object:Gem::Version
39
- version: 0.9.2
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.9.2
47
- - !ruby/object:Gem::Dependency
48
- name: rspec
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 3.0.0
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 3.0.0
61
- - !ruby/object:Gem::Dependency
62
- name: rspec-its
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 1.1.0
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 1.1.0
75
- - !ruby/object:Gem::Dependency
76
- name: simplecov
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: 0.5.4
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: 0.5.4
89
- - !ruby/object:Gem::Dependency
90
- name: timecop
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: 0.3.0
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: 0.3.0
103
- - !ruby/object:Gem::Dependency
104
- name: webrick
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
38
+ version: '1.6'
39
+ type: :runtime
111
40
  prerelease: false
112
41
  version_requirements: !ruby/object:Gem::Requirement
113
42
  requirements:
114
- - - ">="
43
+ - - "~>"
115
44
  - !ruby/object:Gem::Version
116
- version: '0'
45
+ version: '1.6'
117
46
  description: fluent logger for ruby
118
47
  email: frsyuki@gmail.com
119
48
  executables:
@@ -160,7 +89,6 @@ homepage: https://github.com/fluent/fluent-logger-ruby
160
89
  licenses:
161
90
  - Apache-2.0
162
91
  metadata: {}
163
- post_install_message:
164
92
  rdoc_options: []
165
93
  require_paths:
166
94
  - lib
@@ -175,8 +103,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
103
  - !ruby/object:Gem::Version
176
104
  version: '0'
177
105
  requirements: []
178
- rubygems_version: 3.4.1
179
- signing_key:
106
+ rubygems_version: 3.6.9
180
107
  specification_version: 4
181
108
  summary: fluent logger for ruby
182
- test_files: []
109
+ test_files:
110
+ - spec/console_logger_spec.rb
111
+ - spec/fluent_logger_spec.rb
112
+ - spec/level_fluent_logger_spec.rb
113
+ - spec/logger_base_spec.rb
114
+ - spec/logger_spec.rb
115
+ - spec/null_logger_spec.rb
116
+ - spec/plugin/out_test.rb
117
+ - spec/spec_helper.rb
118
+ - spec/support/dummy_fluentd.rb
119
+ - spec/support/dummy_serverengine.rb
120
+ - spec/support/timecop.rb
121
+ - spec/test_logger_spec.rb