semantic_logger 4.10.0 → 4.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/semantic_logger/appender/kafka.rb +28 -23
- data/lib/semantic_logger/base.rb +7 -6
- data/lib/semantic_logger/log.rb +15 -4
- data/lib/semantic_logger/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef345374458ca40a1c31ab82b43fa040974c586fd089a3a5a2a5ab6fe0393c77
|
4
|
+
data.tar.gz: a7d13c0f42e7571b3ddcc47303f83a4b28a2b46929134be7d02e9c5af23d2963
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c4913a0f50f89e9b92b03b89c01b8a02f71f29efd6c06ae0c3f59b49c290b5878569cc6e5a946a7cc29943974d822a29481e6bd83d33c0de66f87f4b524e05c
|
7
|
+
data.tar.gz: ffe8ca5c2ce97b4bfe67bd79b4ae562c509c577cc70daca9128fe2c28cb7e92f1f6e567e4fb5199f89927653b6a1a3d32d53d6287e5f96ec935207534027746f
|
@@ -23,7 +23,7 @@ module SemanticLogger
|
|
23
23
|
module Appender
|
24
24
|
class Kafka < SemanticLogger::Subscriber
|
25
25
|
attr_accessor :seed_brokers, :client_id, :connect_timeout, :socket_timeout,
|
26
|
-
:ssl_ca_cert, :ssl_client_cert, :ssl_client_cert_key,
|
26
|
+
:ssl_ca_cert, :ssl_client_cert, :ssl_client_cert_key, :ssl_ca_certs_from_system,
|
27
27
|
:delivery_threshold, :delivery_interval,
|
28
28
|
:topic, :partition, :partition_key, :key
|
29
29
|
|
@@ -79,6 +79,9 @@ module SemanticLogger
|
|
79
79
|
# Must be used in combination with ssl_client_cert.
|
80
80
|
# Default: nil
|
81
81
|
#
|
82
|
+
# ssl_ca_certs_from_system: [boolean]
|
83
|
+
# Delegate SSL CA cert to the system certs
|
84
|
+
#
|
82
85
|
# delivery_threshold: [Integer]
|
83
86
|
# Number of messages between triggering a delivery of messages to Apache Kafka.
|
84
87
|
# Default: 100
|
@@ -116,24 +119,25 @@ module SemanticLogger
|
|
116
119
|
# Send metrics only events to kafka.
|
117
120
|
# Default: true
|
118
121
|
def initialize(seed_brokers:, client_id: "semantic-logger", connect_timeout: nil, socket_timeout: nil,
|
119
|
-
ssl_ca_cert: nil, ssl_client_cert: nil, ssl_client_cert_key: nil,
|
122
|
+
ssl_ca_cert: nil, ssl_client_cert: nil, ssl_client_cert_key: nil, ssl_ca_certs_from_system: false,
|
120
123
|
topic: "log_messages", partition: nil, partition_key: nil, key: nil,
|
121
124
|
delivery_threshold: 100, delivery_interval: 10,
|
122
125
|
metrics: true, **args, &block)
|
123
126
|
|
124
|
-
@seed_brokers
|
125
|
-
@client_id
|
126
|
-
@connect_timeout
|
127
|
-
@socket_timeout
|
128
|
-
@ssl_ca_cert
|
129
|
-
@ssl_client_cert
|
130
|
-
@ssl_client_cert_key
|
131
|
-
@
|
132
|
-
@
|
133
|
-
@
|
134
|
-
@
|
135
|
-
@
|
136
|
-
@
|
127
|
+
@seed_brokers = seed_brokers
|
128
|
+
@client_id = client_id
|
129
|
+
@connect_timeout = connect_timeout
|
130
|
+
@socket_timeout = socket_timeout
|
131
|
+
@ssl_ca_cert = ssl_ca_cert
|
132
|
+
@ssl_client_cert = ssl_client_cert
|
133
|
+
@ssl_client_cert_key = ssl_client_cert_key
|
134
|
+
@ssl_ca_certs_from_system = ssl_ca_certs_from_system
|
135
|
+
@topic = topic
|
136
|
+
@partition = partition
|
137
|
+
@partition_key = partition_key
|
138
|
+
@key = key
|
139
|
+
@delivery_threshold = delivery_threshold
|
140
|
+
@delivery_interval = delivery_interval
|
137
141
|
|
138
142
|
super(metrics: metrics, **args, &block)
|
139
143
|
reopen
|
@@ -141,14 +145,15 @@ module SemanticLogger
|
|
141
145
|
|
142
146
|
def reopen
|
143
147
|
@kafka = ::Kafka.new(
|
144
|
-
seed_brokers:
|
145
|
-
client_id:
|
146
|
-
connect_timeout:
|
147
|
-
socket_timeout:
|
148
|
-
ssl_ca_cert:
|
149
|
-
ssl_client_cert:
|
150
|
-
ssl_client_cert_key:
|
151
|
-
|
148
|
+
seed_brokers: seed_brokers,
|
149
|
+
client_id: client_id,
|
150
|
+
connect_timeout: connect_timeout,
|
151
|
+
socket_timeout: socket_timeout,
|
152
|
+
ssl_ca_cert: ssl_ca_cert,
|
153
|
+
ssl_client_cert: ssl_client_cert,
|
154
|
+
ssl_client_cert_key: ssl_client_cert_key,
|
155
|
+
ssl_ca_certs_from_system: ssl_ca_certs_from_system,
|
156
|
+
logger: logger
|
152
157
|
)
|
153
158
|
|
154
159
|
@producer = @kafka.async_producer(
|
data/lib/semantic_logger/base.rb
CHANGED
@@ -186,7 +186,8 @@ module SemanticLogger
|
|
186
186
|
# to:
|
187
187
|
# `logger.tagged('first', 'more', 'other')`
|
188
188
|
# - For better performance with clean tags, see `SemanticLogger.tagged`.
|
189
|
-
def tagged(*tags
|
189
|
+
def tagged(*tags)
|
190
|
+
block = -> { yield(self) }
|
190
191
|
# Allow named tags to be passed into the logger
|
191
192
|
# Rails::Rack::Logger passes logs as an array with a single argument
|
192
193
|
if tags.size == 1 && !tags.first.is_a?(Array)
|
@@ -327,14 +328,14 @@ module SemanticLogger
|
|
327
328
|
|
328
329
|
log = Log.new(name, level, index)
|
329
330
|
should_log =
|
330
|
-
if
|
331
|
-
#
|
331
|
+
if exception.nil? && payload.nil? && message.is_a?(Hash)
|
332
|
+
# All arguments as a hash in the message.
|
332
333
|
log.assign(**log.extract_arguments(message))
|
333
334
|
elsif exception.nil? && message && payload && payload.is_a?(Hash)
|
334
|
-
# Message with
|
335
|
-
log.assign(
|
335
|
+
# Message supplied along with a hash with the remaining arguments.
|
336
|
+
log.assign(**log.extract_arguments(payload, message))
|
336
337
|
else
|
337
|
-
#
|
338
|
+
# All fields supplied directly.
|
338
339
|
log.assign(message: message, payload: payload, exception: exception)
|
339
340
|
end
|
340
341
|
|
data/lib/semantic_logger/log.rb
CHANGED
@@ -140,14 +140,25 @@ module SemanticLogger
|
|
140
140
|
end
|
141
141
|
|
142
142
|
# Extract the arguments from a Hash Payload
|
143
|
-
def extract_arguments(payload)
|
143
|
+
def extract_arguments(payload, message = nil)
|
144
144
|
raise(ArgumentError, "payload must be a Hash") unless payload.is_a?(Hash)
|
145
145
|
|
146
|
+
message = nil if message == ""
|
146
147
|
return payload if payload.key?(:payload)
|
147
148
|
|
148
|
-
|
149
|
-
|
150
|
-
|
149
|
+
new_payload = {}
|
150
|
+
args = {}
|
151
|
+
payload.each_pair do |key, value|
|
152
|
+
# Supplied message takes precedence
|
153
|
+
if (key == :message) && !message.nil?
|
154
|
+
new_payload[key] = value
|
155
|
+
next
|
156
|
+
end
|
157
|
+
|
158
|
+
NON_PAYLOAD_KEYS.include?(key) ? args[key] = value : new_payload[key] = value
|
159
|
+
end
|
160
|
+
args[:payload] = new_payload unless new_payload.empty?
|
161
|
+
args[:message] = message if message
|
151
162
|
args
|
152
163
|
end
|
153
164
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantic_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '0'
|
113
113
|
requirements: []
|
114
|
-
rubygems_version: 3.3.
|
114
|
+
rubygems_version: 3.3.7
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Feature rich logging framework, and replacement for existing Ruby & Rails
|