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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dac24933499290c1a3703ae8da09aaeaf46e8096e68043ce1ba4618f3b61435a
4
- data.tar.gz: 3876aef726012b9a428a37a951ddd515126538686f91cc793bef629e9f13f5d2
3
+ metadata.gz: 3eaf40fe07ac58f3ce20edee41da734f38b49909b9921647f4ceaf33f1db9b32
4
+ data.tar.gz: f861e84ad1b728d86a2c79c534170ec60edd382fd666345050890943992ba849
5
5
  SHA512:
6
- metadata.gz: 4bc1ef83dd6f6be2cce82a64226de3fcef60bff86728a136497eacd396b4991b0260c8740126b21e32336c2e4c42d1c821d9739141b4bf8d7783f7d9a287a9fa
7
- data.tar.gz: a0e0a7d4b2b6b3907d1c73e6ee569703fa66ec56eda323efd3823563e4396151407bdda27997188b7bfcb912e54f451295d30b6c5874f594c9925669b8527771
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
- write_overflow_logs(log[:id], log[:log_type], entries, max, logger)
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(id, log_type, entries, max, logger)
156
- index = 1
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
- overflow = { id: id, log_type: log_type, index: index, logs: candidate }
153
+ overflow_log = base_fields.merge(overflow: part, logs: candidate)
162
154
 
163
- if overflow.inspect.length > max && group.any?
164
- logger.write(format({ id: id, log_type: log_type, index: index, logs: group }))
165
- index += 1
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({ id: id, log_type: log_type, index: index, logs: group }))
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
@@ -1,3 +1,3 @@
1
1
  module UnifiedLogger
2
- VERSION = "0.1.6".freeze
2
+ VERSION = "0.1.8".freeze
3
3
  end
@@ -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.6
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-30 00:00:00.000000000 Z
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