lograge 0.12.0 → 0.13.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 +4 -4
- data/LICENSE.txt +1 -1
- data/lib/lograge/formatters/key_value_deep.rb +42 -0
- data/lib/lograge/log_subscribers/base.rb +9 -0
- data/lib/lograge/version.rb +1 -1
- data/lib/lograge.rb +13 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be4bab08b1374b1d249edf7c7d9bfc89f327349346ac8cfffaba22a57496548b
|
4
|
+
data.tar.gz: 380d3bc691fe9cecf723c4b62f528420d62eb7bc61bd0d880b154855a7c258e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c16914bc5d1144d20e3aa81a28b175b9fa5a619b9dc0049ebf8f44c8bc08d365494a51d6e9a0af4d85b4ac5b9c4be6701aed32dfbd4510a5086fd4d2a4238f07
|
7
|
+
data.tar.gz: e07e2e6c4fb9f527faf75a7acad4e37ce491fdd4ebf40e41aa7f1dcef19c76ad036ac02b1d4c2a3eabf240331b3e67a96b9c3f13dc3e37c4a8dfc778f894ea64
|
data/LICENSE.txt
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lograge
|
4
|
+
module Formatters
|
5
|
+
class KeyValueDeep < KeyValue
|
6
|
+
def call(data)
|
7
|
+
super flatten_keys(data)
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
def flatten_keys(data, prefix = '')
|
13
|
+
return flatten_object(data, prefix) if [Hash, Array].include? data.class
|
14
|
+
|
15
|
+
data
|
16
|
+
end
|
17
|
+
|
18
|
+
def flatten_object(data, prefix)
|
19
|
+
result = {}
|
20
|
+
loop_on_object(data) do |key, value|
|
21
|
+
key = "#{prefix}_#{key}" unless prefix.empty?
|
22
|
+
if [Hash, Array].include? value.class
|
23
|
+
result.merge!(flatten_keys(value, key))
|
24
|
+
else
|
25
|
+
result[key] = value
|
26
|
+
end
|
27
|
+
end
|
28
|
+
result
|
29
|
+
end
|
30
|
+
|
31
|
+
def loop_on_object(data, &block)
|
32
|
+
if data.instance_of? Array
|
33
|
+
data.each_with_index do |value, index|
|
34
|
+
yield index, value
|
35
|
+
end
|
36
|
+
return
|
37
|
+
end
|
38
|
+
data.each(&block)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -29,6 +29,7 @@ module Lograge
|
|
29
29
|
def extract_request(event, payload)
|
30
30
|
data = initial_data(payload)
|
31
31
|
data.merge!(extract_status(payload))
|
32
|
+
data.merge!(extract_allocations(event))
|
32
33
|
data.merge!(extract_runtimes(event, payload))
|
33
34
|
data.merge!(extract_location)
|
34
35
|
data.merge!(extract_unpermitted_params)
|
@@ -59,6 +60,14 @@ module Lograge
|
|
59
60
|
ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name)
|
60
61
|
end
|
61
62
|
|
63
|
+
def extract_allocations(event)
|
64
|
+
if (allocations = (event.respond_to?(:allocations) && event.allocations))
|
65
|
+
{ allocations: allocations }
|
66
|
+
else
|
67
|
+
{}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
62
71
|
def custom_options(event)
|
63
72
|
options = Lograge.custom_options(event) || {}
|
64
73
|
options.merge event.payload[:custom_payload] || {}
|
data/lib/lograge/version.rb
CHANGED
data/lib/lograge.rb
CHANGED
@@ -6,6 +6,7 @@ require 'lograge/formatters/cee'
|
|
6
6
|
require 'lograge/formatters/json'
|
7
7
|
require 'lograge/formatters/graylog2'
|
8
8
|
require 'lograge/formatters/key_value'
|
9
|
+
require 'lograge/formatters/key_value_deep'
|
9
10
|
require 'lograge/formatters/l2met'
|
10
11
|
require 'lograge/formatters/lines'
|
11
12
|
require 'lograge/formatters/logstash'
|
@@ -119,7 +120,7 @@ module Lograge
|
|
119
120
|
def unsubscribe(component, subscriber)
|
120
121
|
events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' }
|
121
122
|
events.each do |event|
|
122
|
-
|
123
|
+
Lograge.notification_listeners_for("#{event}.#{component}").each do |listener|
|
123
124
|
ActiveSupport::Notifications.unsubscribe listener if listener.instance_variable_get('@delegate') == subscriber
|
124
125
|
end
|
125
126
|
end
|
@@ -223,6 +224,17 @@ module Lograge
|
|
223
224
|
def lograge_config
|
224
225
|
application.config.lograge
|
225
226
|
end
|
227
|
+
|
228
|
+
if ::ActiveSupport::VERSION::MAJOR >= 8 ||
|
229
|
+
(::ActiveSupport::VERSION::MAJOR >= 7 && ::ActiveSupport::VERSION::MINOR >= 1)
|
230
|
+
def notification_listeners_for(name)
|
231
|
+
ActiveSupport::Notifications.notifier.all_listeners_for(name)
|
232
|
+
end
|
233
|
+
else
|
234
|
+
def notification_listeners_for(name)
|
235
|
+
ActiveSupport::Notifications.notifier.listeners_for(name)
|
236
|
+
end
|
237
|
+
end
|
226
238
|
end
|
227
239
|
# rubocop:enable Metrics/ModuleLength
|
228
240
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lograge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Meyer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/lograge/formatters/helpers/method_and_path.rb
|
127
127
|
- lib/lograge/formatters/json.rb
|
128
128
|
- lib/lograge/formatters/key_value.rb
|
129
|
+
- lib/lograge/formatters/key_value_deep.rb
|
129
130
|
- lib/lograge/formatters/l2met.rb
|
130
131
|
- lib/lograge/formatters/lines.rb
|
131
132
|
- lib/lograge/formatters/logstash.rb
|
@@ -147,6 +148,7 @@ licenses:
|
|
147
148
|
- MIT
|
148
149
|
metadata:
|
149
150
|
rubygems_mfa_required: 'true'
|
151
|
+
changelog_uri: https://github.com/roidrage/lograge/blob/master/CHANGELOG.md
|
150
152
|
post_install_message:
|
151
153
|
rdoc_options: []
|
152
154
|
require_paths:
|
@@ -162,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
164
|
- !ruby/object:Gem::Version
|
163
165
|
version: '0'
|
164
166
|
requirements: []
|
165
|
-
rubygems_version: 3.1
|
167
|
+
rubygems_version: 3.4.1
|
166
168
|
signing_key:
|
167
169
|
specification_version: 4
|
168
170
|
summary: Tame Rails' multi-line logging into a single line per request
|