unified_logger 0.1.6 → 0.1.8
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/lib/unified_logger/logger.rb +11 -19
- data/lib/unified_logger/severity.rb +41 -0
- data/lib/unified_logger/version.rb +1 -1
- data/lib/unified_logger.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3eaf40fe07ac58f3ce20edee41da734f38b49909b9921647f4ceaf33f1db9b32
|
|
4
|
+
data.tar.gz: f861e84ad1b728d86a2c79c534170ec60edd382fd666345050890943992ba849
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 411ba03be388f98d35348bde0926c6ccb6da44c5381518eb56a7a360080306d4bd03cc8ebef8ca07cc6f6eed4d739ae55a0a0577697196616f4bba2d1f3f3d40
|
|
7
|
+
data.tar.gz: 873b7925b2c47c799eea56756b9ce8d70181426fbff3884e38e0a3436a5851deacd0c4e24b43a6347fc3b14d416582a6269265d74cde3f350d3c4c370ddbd044
|
|
@@ -2,11 +2,10 @@ module UnifiedLogger
|
|
|
2
2
|
class Logger < ::Logger
|
|
3
3
|
LOGS = Concurrent::ThreadLocalVar.new([])
|
|
4
4
|
EXTRA_LOG_FIELDS = Concurrent::ThreadLocalVar.new({})
|
|
5
|
-
NOTE = 1.5
|
|
6
5
|
SEVERITY_LEVELS = {
|
|
7
6
|
debug: ::Logger::DEBUG,
|
|
8
7
|
info: ::Logger::INFO,
|
|
9
|
-
note: NOTE,
|
|
8
|
+
note: ::Logger::Severity::NOTE,
|
|
10
9
|
warn: ::Logger::WARN,
|
|
11
10
|
error: ::Logger::ERROR,
|
|
12
11
|
fatal: ::Logger::FATAL,
|
|
@@ -20,14 +19,6 @@ module UnifiedLogger
|
|
|
20
19
|
self.formatter = proc {}
|
|
21
20
|
end
|
|
22
21
|
|
|
23
|
-
def level=(severity)
|
|
24
|
-
if severity == :note
|
|
25
|
-
@level = NOTE
|
|
26
|
-
else
|
|
27
|
-
super
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
22
|
def debug(message = nil, &block)
|
|
32
23
|
message = block.call if message.nil? && block
|
|
33
24
|
add(::Logger::DEBUG, message)
|
|
@@ -40,7 +31,7 @@ module UnifiedLogger
|
|
|
40
31
|
|
|
41
32
|
def note(message = nil, &block)
|
|
42
33
|
message = block.call if message.nil? && block
|
|
43
|
-
add(NOTE, message)
|
|
34
|
+
add(::Logger::Severity::NOTE, message)
|
|
44
35
|
end
|
|
45
36
|
|
|
46
37
|
def warn(message = nil, &block)
|
|
@@ -146,23 +137,24 @@ module UnifiedLogger
|
|
|
146
137
|
else
|
|
147
138
|
entries = log.delete(:logs)
|
|
148
139
|
logger.write(format(log))
|
|
149
|
-
|
|
140
|
+
base_fields = log.except(:request, :response)
|
|
141
|
+
write_overflow_logs(base_fields, entries, max, logger)
|
|
150
142
|
end
|
|
151
143
|
end
|
|
152
144
|
|
|
153
145
|
private
|
|
154
146
|
|
|
155
|
-
def write_overflow_logs(
|
|
156
|
-
|
|
147
|
+
def write_overflow_logs(base_fields, entries, max, logger)
|
|
148
|
+
part = 1
|
|
157
149
|
group = []
|
|
158
150
|
|
|
159
151
|
entries.each do |entry|
|
|
160
152
|
candidate = group + [entry]
|
|
161
|
-
|
|
153
|
+
overflow_log = base_fields.merge(overflow: part, logs: candidate)
|
|
162
154
|
|
|
163
|
-
if
|
|
164
|
-
logger.write(format(
|
|
165
|
-
|
|
155
|
+
if overflow_log.inspect.length > max && group.any?
|
|
156
|
+
logger.write(format(base_fields.merge(overflow: part, logs: group)))
|
|
157
|
+
part += 1
|
|
166
158
|
group = [entry]
|
|
167
159
|
else
|
|
168
160
|
group = candidate
|
|
@@ -171,7 +163,7 @@ module UnifiedLogger
|
|
|
171
163
|
|
|
172
164
|
return if group.empty?
|
|
173
165
|
|
|
174
|
-
logger.write(format(
|
|
166
|
+
logger.write(format(base_fields.merge(overflow: part, logs: group)))
|
|
175
167
|
end
|
|
176
168
|
|
|
177
169
|
def filter(content)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Extends Ruby's Logger::Severity to recognize the custom :note level (1.5),
|
|
4
|
+
# sitting between INFO (1) and WARN (2). This patch ensures ALL logger instances
|
|
5
|
+
# (not just UnifiedLogger::Logger) accept :note as a valid level — which is
|
|
6
|
+
# required because Rails applies config.log_level to every logger it creates.
|
|
7
|
+
|
|
8
|
+
Logger::Severity.const_set(:NOTE, 1.5) unless Logger::Severity.const_defined?(:NOTE)
|
|
9
|
+
|
|
10
|
+
if Logger::Severity.respond_to?(:coerce)
|
|
11
|
+
# Ruby 3.3+ / logger gem >= 1.6: patch coerce so level= works for :note
|
|
12
|
+
module UnifiedLoggerSeverityCoerce
|
|
13
|
+
CUSTOM_LEVELS = { "note" => 1.5 }.freeze
|
|
14
|
+
|
|
15
|
+
def coerce(severity)
|
|
16
|
+
if severity.is_a?(Numeric)
|
|
17
|
+
severity
|
|
18
|
+
else
|
|
19
|
+
key = severity.to_s.downcase
|
|
20
|
+
CUSTOM_LEVELS[key] || super
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Logger::Severity.singleton_class.prepend(UnifiedLoggerSeverityCoerce)
|
|
26
|
+
else
|
|
27
|
+
# Older Ruby: no coerce method, patch level= directly on Logger
|
|
28
|
+
module UnifiedLoggerSeverityLevel
|
|
29
|
+
def level=(severity)
|
|
30
|
+
if severity.is_a?(Numeric)
|
|
31
|
+
@level = severity
|
|
32
|
+
elsif severity.to_s.downcase == "note"
|
|
33
|
+
@level = Logger::Severity::NOTE
|
|
34
|
+
else
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
Logger.prepend(UnifiedLoggerSeverityLevel)
|
|
41
|
+
end
|
data/lib/unified_logger.rb
CHANGED
|
@@ -11,6 +11,7 @@ require "json"
|
|
|
11
11
|
require "logger"
|
|
12
12
|
|
|
13
13
|
require_relative "unified_logger/version"
|
|
14
|
+
require_relative "unified_logger/severity"
|
|
14
15
|
require_relative "unified_logger/logger"
|
|
15
16
|
require_relative "unified_logger/request_logger"
|
|
16
17
|
require_relative "unified_logger/job_logger"
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: unified_logger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marcovecchio
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-03-
|
|
10
|
+
date: 2026-03-31 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: activesupport
|
|
@@ -75,6 +75,7 @@ files:
|
|
|
75
75
|
- lib/unified_logger/logger.rb
|
|
76
76
|
- lib/unified_logger/railtie.rb
|
|
77
77
|
- lib/unified_logger/request_logger.rb
|
|
78
|
+
- lib/unified_logger/severity.rb
|
|
78
79
|
- lib/unified_logger/sidekiq.rb
|
|
79
80
|
- lib/unified_logger/version.rb
|
|
80
81
|
homepage: https://github.com/marcovecchio/unified_logger
|