lumberjack_json_device 2.2.0 → 2.2.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/CHANGE_LOG.md +6 -0
- data/VERSION +1 -1
- data/lib/lumberjack_json_device.rb +13 -3
- data/lumberjack_json_device.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2951abe63ac8a86b39a1bd6f8cc47b4aebda9be19a18ac2bc1b152f1a1e9342e
|
4
|
+
data.tar.gz: dd5b262268cce9d7a2423562c412d2afc3d712db699690cd21dad056c82083f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f07e47c180e3efebf3f27409b0022312e6504f172abcddc278ab16393fd2b243f39f72604f59eb680dcd6014af90947e884b57b7b85f2f2dbcf7d0aa5ff3906
|
7
|
+
data.tar.gz: 79b382f576fb469373f3ca33b8b0e2473bb988bdcf93dc4f1c1c8da4c457a6fdc25bf072bcdc88baa7ed916620dfe602fa6ea4f61fa3c76d9478b989b81cb523
|
data/CHANGE_LOG.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
|
+
## 2.2.1
|
8
|
+
|
9
|
+
## Changed
|
10
|
+
|
11
|
+
- Added error handling for JSON serialization. This ensures that logs can still be written to even if an error occurs during serialization.
|
12
|
+
|
7
13
|
## 2.2.0
|
8
14
|
|
9
15
|
### Changed
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.1
|
@@ -263,8 +263,9 @@ module Lumberjack
|
|
263
263
|
end
|
264
264
|
end
|
265
265
|
|
266
|
-
def json_safe(value)
|
266
|
+
def json_safe(value, seen = nil)
|
267
267
|
return nil if value.nil?
|
268
|
+
return nil if seen&.include?(value.object_id)
|
268
269
|
|
269
270
|
# Check if the as_json method is defined takes no parameters
|
270
271
|
as_json_arity = value.method(:as_json).arity if value.respond_to?(:as_json)
|
@@ -272,12 +273,21 @@ module Lumberjack
|
|
272
273
|
if as_json_arity == 0 || as_json_arity == -1
|
273
274
|
value.as_json
|
274
275
|
elsif value.is_a?(Hash)
|
275
|
-
|
276
|
+
seen ||= Set.new
|
277
|
+
seen << value.object_id
|
278
|
+
value.transform_values { |v| json_safe(v, seen) }
|
276
279
|
elsif value.is_a?(Enumerable)
|
277
|
-
|
280
|
+
seen ||= Set.new
|
281
|
+
seen << value.object_id
|
282
|
+
value.collect { |v| json_safe(v, seen) }
|
278
283
|
else
|
279
284
|
value
|
280
285
|
end
|
286
|
+
rescue SystemStackError, StandardError => e
|
287
|
+
error_message = e.class.name
|
288
|
+
error_message = "#{error_message} #{e.message}" if e.message && e.message != ""
|
289
|
+
warn("<Error serializing #{value.class} to JSON: #{error_message}>")
|
290
|
+
"<Error serializing #{value.class} to JSON: #{error_message}>"
|
281
291
|
end
|
282
292
|
end
|
283
293
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lumberjack_json_device
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.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: lumberjack
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.4.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.4.1
|
27
27
|
description:
|
28
28
|
email:
|
29
29
|
- bbdurand@gmail.com
|