lumberjack 1.4.0 → 1.4.1
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/CHANGELOG.md +6 -0
- data/VERSION +1 -1
- data/lib/lumberjack/formatter.rb +8 -1
- data/lib/lumberjack/log_entry.rb +6 -2
- data/lib/lumberjack/tag_formatter.rb +16 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6acfd9c34a9d19b2f26a3fd759518c8d5ca13c6c80293ddb3e9fbe3f6adc164d
|
4
|
+
data.tar.gz: 130e62ac168101325ab00eaed172b5e91cb8d84cfe6ee826f6828e589a8f32e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a7c8bd6d9a31ffad48353c22e949bf5180f71df5bfe623386395c1620839036276b1a346e6d2d2ec4badedef8b1df485d9edbcb66518e8311d6d952d3caa466
|
7
|
+
data.tar.gz: 5440d08db3ea664f8cb17360c6efe34748ed85372e9caa5f796566efbb3a76978a665d13d2945740bde87d9075488bff08f1a8bc9afe0f05d709147c341ca047
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## 1.4.1
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
- Catch errors when formatting values so that it doesn't prevent logging. Otherwise there can be no way to log that the error occurred. Values that produced errors in the formatter will now be shown in the logs as "<Error formatting CLASS_NAME: ERROR_CLASS ERROR_MESSAGE>".
|
12
|
+
|
7
13
|
## 1.4.0
|
8
14
|
|
9
15
|
### Changed
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.4.
|
1
|
+
1.4.1
|
data/lib/lumberjack/formatter.rb
CHANGED
@@ -170,7 +170,14 @@ module Lumberjack
|
|
170
170
|
def format(message)
|
171
171
|
formatter = formatter_for(message.class)
|
172
172
|
if formatter&.respond_to?(:call)
|
173
|
-
|
173
|
+
begin
|
174
|
+
formatter.call(message)
|
175
|
+
rescue SystemStackError, StandardError => e
|
176
|
+
error_message = e.class.name
|
177
|
+
error_message = "#{error_message} #{e.message}" if e.message && e.message != ""
|
178
|
+
warn("<Error formatting #{message.class.name}: #{error_message}>")
|
179
|
+
"<Error formatting #{message.class.name}: #{error_message}>"
|
180
|
+
end
|
174
181
|
else
|
175
182
|
message
|
176
183
|
end
|
data/lib/lumberjack/log_entry.rb
CHANGED
@@ -98,7 +98,9 @@ module Lumberjack
|
|
98
98
|
tags_string
|
99
99
|
end
|
100
100
|
|
101
|
-
def compact_tags(tags)
|
101
|
+
def compact_tags(tags, seen = nil)
|
102
|
+
return {} if seen&.include?(tags.object_id)
|
103
|
+
|
102
104
|
delete_keys = nil
|
103
105
|
compacted_keys = nil
|
104
106
|
|
@@ -107,7 +109,9 @@ module Lumberjack
|
|
107
109
|
delete_keys ||= []
|
108
110
|
delete_keys << key
|
109
111
|
elsif value.is_a?(Hash)
|
110
|
-
|
112
|
+
seen ||= Set.new
|
113
|
+
seen << tags.object_id
|
114
|
+
compacted_value = compact_tags(value, seen)
|
111
115
|
if compacted_value.empty?
|
112
116
|
delete_keys ||= []
|
113
117
|
delete_keys << key
|
@@ -106,12 +106,12 @@ module Lumberjack
|
|
106
106
|
return tags
|
107
107
|
end
|
108
108
|
|
109
|
-
|
109
|
+
formatted_tags(tags)
|
110
110
|
end
|
111
111
|
|
112
112
|
private
|
113
113
|
|
114
|
-
def
|
114
|
+
def formatted_tags(tags, skip_classes: nil, prefix: nil)
|
115
115
|
formatted = {}
|
116
116
|
|
117
117
|
tags.each do |name, value|
|
@@ -134,12 +134,19 @@ module Lumberjack
|
|
134
134
|
|
135
135
|
formatter ||= @default_formatter
|
136
136
|
|
137
|
-
formatted_value =
|
138
|
-
formatter.
|
139
|
-
|
140
|
-
formatter.call
|
141
|
-
|
142
|
-
|
137
|
+
formatted_value = begin
|
138
|
+
if formatter.is_a?(Lumberjack::Formatter)
|
139
|
+
formatter.format(value)
|
140
|
+
elsif formatter.respond_to?(:call)
|
141
|
+
formatter.call(value)
|
142
|
+
else
|
143
|
+
value
|
144
|
+
end
|
145
|
+
rescue SystemStackError, StandardError => e
|
146
|
+
error_message = e.class.name
|
147
|
+
error_message = "#{error_message} #{e.message}" if e.message && e.message != ""
|
148
|
+
warn("<Error formatting #{value.class.name}: #{error_message}>")
|
149
|
+
"<Error formatting #{value.class.name}: #{error_message}>"
|
143
150
|
end
|
144
151
|
|
145
152
|
if formatted_value.is_a?(Enumerable)
|
@@ -148,7 +155,7 @@ module Lumberjack
|
|
148
155
|
sub_prefix = "#{prefixed_name}."
|
149
156
|
|
150
157
|
formatted_value = if formatted_value.is_a?(Hash)
|
151
|
-
|
158
|
+
formatted_tags(formatted_value, skip_classes: skip_classes, prefix: sub_prefix)
|
152
159
|
else
|
153
160
|
formatted_value.collect do |item|
|
154
161
|
formatted_tag_value(nil, item, skip_classes: skip_classes, prefix: sub_prefix)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lumberjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Durand
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|