gelf_redux 4.3.0 → 4.4.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: 23f21deaa67f35134cc3781a6b9b679cc05ae4d928e515735bdf66f4cd72cf21
4
- data.tar.gz: 2da40c103efeb1ef11af459975eb83018803d84b2a74800a7a24af9d63439f48
3
+ metadata.gz: '090a1e70d86fb1c1773e85f693561bd0c0c13944c1924464271f93761ca4f1e3'
4
+ data.tar.gz: 6404d9178c8a8383edf2c899e25d76510558d10fe307bb528ca09882dd36d107
5
5
  SHA512:
6
- metadata.gz: 16892359ef4116bd14fc889e8dd7bf57ab57c7dcc9a0c2a6584a1ae7184e8a72677bfcd4b3a2ac06d451da8054c5e76218e3352465fe1147f80c6c65ca929a6e
7
- data.tar.gz: adca9b13b7e2d9b62a9df3ede951f462cdef810eb2587ef177a0263f21fd842f0575b5b4fb3021ca671c414e2d734f7ec8a6815b8fca333c0d549fad99436f73
6
+ metadata.gz: d3674594a4cf394a45cc08381852d8d5a92cef8a1469e4491b57babf11e80472a79a28d569853da8e059c71d6c3d3bcf69a85109a63145ad40ba959e7fdc6ecf
7
+ data.tar.gz: '08553745e14bb61b6c79fd12cc6e2c5dc66462826f58c368038bf743aa6df5698b17380948665c206868ed4ea0f620363981d294cee8bb8ad57af85f5cd3447a'
data/README.md CHANGED
@@ -7,37 +7,58 @@ of the original project because we wanted to keep all of the projects and mainta
7
7
 
8
8
  ## Versioning
9
9
 
10
- - 3.1.1 is the latest original gelf-rb version ()
10
+ - 3.1.1 is the latest original gelf-rb version (https://github.com/graylog-labs/gelf-rb)
11
11
  - 3.2.1 is the first http(s) supporting version from here https://github.com/christianrolle/gelf-rb
12
12
  - 4.0.0 we do start from here with our versioning, improvements and updates
13
13
 
14
+ See the [CHANGELOG](CHANGELOG) for release details.
14
15
 
16
+ ## Installation
17
+
18
+ Add `gem 'gelf_redux'` to your Gemfile (and run `bundle install`), or run `gem install gelf_redux`.
19
+ Load the library with `require 'gelf_redux'`.
15
20
 
16
21
  ## Usage
17
- ### Gelf::Notifier
22
+ ### GELF::Notifier
18
23
 
19
- This allows you to send arbitary messages via UDP to Graylog.
24
+ This allows you to send arbitrary messages via UDP to Graylog.
20
25
 
21
26
  n = GELF::Notifier.new("localhost", 12201)
22
27
 
23
28
  # Send with custom attributes and an additional parameter "foo"
24
- n.notify!(:short_message => "foo", :full_message => "something here\n\nbacktrace?!", :_foo => "bar")
29
+ n.notify!(short_message: "foo", full_message: "something here\n\nbacktrace?!", _foo: "bar")
25
30
 
26
31
  # Pass any object that responds to .to_hash
27
32
  n.notify!(Exception.new)
28
33
 
29
34
  The recommended default is to send via UDP but you can choose to send via TCP like this:
30
35
 
31
- n = GELF::Notifier.new("127.0.0.1", 12201, "LAN", { :protocol => GELF::Protocol::TCP })
36
+ n = GELF::Notifier.new("127.0.0.1", 12201, "LAN", { protocol: GELF::Protocol::TCP })
32
37
 
33
38
  Note that the `LAN` or `WAN` option is ignored for TCP because no chunking happens. (Read below for more information.)
34
39
 
35
- ### Gelf::Logger
40
+ For a Graylog GELF HTTP input, select HTTP or HTTPS. The `:path` and `:headers` options are available if your endpoint requires them:
41
+
42
+ n = GELF::Notifier.new("localhost", 12201, "WAN", { protocol: GELF::Protocol::HTTP })
43
+ n.notify!("Hello from HTTP")
44
+
45
+ # For an HTTPS input, use GELF::Protocol::HTTPS and its HTTPS port:
46
+ n = GELF::Notifier.new("graylog.example.com", 443, "WAN", { protocol: GELF::Protocol::HTTPS })
47
+
48
+ For TLS over a GELF TCP input, pass `:tls`. Certificate and hostname verification are enabled by default; specify `"ca"` to trust a custom CA. The host must match the server certificate:
49
+
50
+ n = GELF::Notifier.new("graylog.example.com", 12201, "WAN", {
51
+ protocol: GELF::Protocol::TCP,
52
+ tls: { "ca" => "/path/to/ca.pem" }
53
+ })
54
+ n.notify!("Hello from TLS")
55
+
56
+ ### GELF::Logger
36
57
 
37
- The Gelf::Logger is compatible with the standard Ruby Logger interface and can be used interchangeably.
38
- Under the hood it uses Gelf::Notifier to send log messages via UDP to Graylog.
58
+ The GELF::Logger is compatible with the standard Ruby Logger interface and can be used interchangeably.
59
+ Under the hood it uses GELF::Notifier to send log messages via UDP to Graylog.
39
60
 
40
- logger = GELF::Logger.new("localhost", 12201, "WAN", { :facility => "appname" })
61
+ logger = GELF::Logger.new("localhost", 12201, "WAN", { facility: "appname" })
41
62
 
42
63
  logger.debug "foobar"
43
64
  logger.info "foobar"
@@ -47,13 +68,13 @@ Under the hood it uses Gelf::Notifier to send log messages via UDP to Graylog.
47
68
 
48
69
  logger << "foobar"
49
70
 
50
- Then `WAN` or `LAN` option influences the UDP chunk size depending on if you send in your own
71
+ The `WAN` or `LAN` option influences the UDP chunk size depending on whether you send in your own
51
72
  network (LAN) or on a longer route (i.e. through the internet) and should be set accordingly.
52
73
 
53
74
  Since it's compatible with the Logger interface, you can also use it in your Rails application:
54
75
 
55
76
  # config/environments/production.rb
56
- config.logger = GELF::Logger.new("localhost", 12201, "WAN", { :facility => "appname" })
77
+ config.logger = GELF::Logger.new("localhost", 12201, "WAN", { facility: "appname" })
57
78
 
58
79
  ### Note on Patches/Pull Requests
59
80
 
@@ -71,7 +92,7 @@ You can either run tests against the ruby versions defined in docker-compose.yml
71
92
  ```bash
72
93
  docker compose up
73
94
  ```
74
- Or you can run a specific test:
95
+ Or you can run the tests for a specific Ruby version:
75
96
  ```bash
76
97
  docker compose up ruby26
77
98
  ```
@@ -35,7 +35,7 @@ module GELF
35
35
 
36
36
  def connect(host, port)
37
37
  plain_socket = super(host, port)
38
- start_tls(plain_socket)
38
+ start_tls(plain_socket, host)
39
39
  rescue OpenSSL::SSL::SSLError
40
40
  plain_socket.close unless plain_socket.closed?
41
41
  raise unless rescue_ssl_errors
@@ -43,10 +43,13 @@ module GELF
43
43
  end
44
44
 
45
45
  # Initiates TLS communication on the socket
46
- def start_tls(plain_socket)
46
+ def start_tls(plain_socket, host)
47
47
  ssl_socket_class.new(plain_socket, ssl_context).tap do |ssl_socket|
48
48
  ssl_socket.sync_close = true
49
+ ssl_socket.hostname = host if ssl_socket.respond_to?(:hostname=) # SNI
49
50
  ssl_socket.connect
51
+ # VERIFY_PEER only checks the chain; also check the cert was issued for this host
52
+ ssl_socket.post_connection_check(host) unless @tls_options['no_verify']
50
53
  end
51
54
  end
52
55
 
@@ -88,7 +91,7 @@ module GELF
88
91
  def restrict_ciphers(ctx)
89
92
  # This CipherString is will allow a variety of 'currently' cryptographically secure ciphers,
90
93
  # while also retaining a broad level of compatibility
91
- ctx.ciphers = "TLSv1_2:TLSv1_1:TLSv1:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:!ADH:!IDEA:!3DES"
94
+ ctx.ciphers = "TLSv1.2:TLSv1.1:TLSv1:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:!ADH:!IDEA:!3DES"
92
95
  end
93
96
 
94
97
  def verify_mode
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gelf_redux
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Palazhchenko
@@ -14,22 +14,22 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2025-09-05 00:00:00.000000000 Z
17
+ date: 2026-09-28 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
- name: shoulda
20
+ name: shoulda-context
21
21
  requirement: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 4.0.0
25
+ version: '2.0'
26
26
  type: :development
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 4.0.0
32
+ version: '2.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: mocha
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 3.18.1
81
+ version: '3.18'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 3.18.1
88
+ version: '3.18'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: timecop
91
91
  requirement: !ruby/object:Gem::Requirement