nexus_semantic_logger 1.7.0 → 1.7.2

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: c5403708253ceb9cf820c6a8b027d0be275d5cb7e5329229ebfd93e51d4f8725
4
- data.tar.gz: 80b06cd16cd31019b72cdf1c15dfbd7a8c3f85760d712b261497b22259681578
3
+ metadata.gz: 826285386a51e1104bebf139598b213525752499b53d42e76edad8b6bc635db3
4
+ data.tar.gz: c761ecf11144f16044a0d3ff37438be3f6153bcc1d2ad6df258d5b6dec57e112
5
5
  SHA512:
6
- metadata.gz: c9d24b87589d0ffedadb335893d8f2d7143e60e492e8e3383aeae3657b77c999347983cae70facaf3b6651d97a9c20704e9d0ff4657f3bbe24df952dd6596890
7
- data.tar.gz: cd9e460d524189879e8387582391b567fc052cd7699853f60482589a11a59450102bb2c6120f7bcdad02f610ecab031d423d3b04ccd6d6f98fdfcdb26a58bdc1
6
+ metadata.gz: e4cb33cfd5f4db4328b96d87188064bcd24e8a396cde803b9d4a162aa94fab6d9a94e7dd98604c1672074ff1d4c4facc8ea6c8e0a2acc7b1dce6ad2cabe9a051
7
+ data.tar.gz: d1bd71f0c63c7d02b6b6242e274d6a9e61d8bbafc05b3b9fbb0362698678ac037318a179a43d8984c28686a3f8ace49a1479a5685417e156ac69b0b2f5312582
@@ -39,6 +39,10 @@ module NexusSemanticLogger
39
39
  NexusSemanticLogger::DatadogTracer.new(service)
40
40
 
41
41
  logger.info('SemanticLogger initialised.', level: config.log_level)
42
+
43
+ config.after_initialize do
44
+ require("nexus_semantic_logger/extensions/action_dispatch/debug_exceptions") if defined?(::ActionDispatch::DebugExceptions)
45
+ end
42
46
  end
43
47
 
44
48
  def self.development(config)
@@ -32,6 +32,24 @@ module NexusSemanticLogger
32
32
  if named_tags.is_a?(Hash)
33
33
  hash.deep_merge!(named_tags)
34
34
  end
35
+ hash_to_json(hash)
36
+ end
37
+
38
+ # Serialise hash to json while ensuring we don't abort due to an infinite loop.
39
+ # SystemStackError while serialising indicates an infinite loop- determine which key is affected.
40
+ def hash_to_json(hash)
41
+ hash.to_json
42
+ rescue SystemStackError
43
+ as_json_serialise_errors = []
44
+ hash.keys.each do |key|
45
+ begin
46
+ hash[key].as_json
47
+ rescue SystemStackError
48
+ hash.delete(key)
49
+ as_json_serialise_errors << key
50
+ end
51
+ end
52
+ hash[:as_json_serialise_errors] = as_json_serialise_errors
35
53
  hash.to_json
36
54
  end
37
55
  end
@@ -0,0 +1,20 @@
1
+ # Log actual exceptions, not a string representation
2
+ require "action_dispatch"
3
+
4
+ module ActionDispatch
5
+ # Fork of the rails_semantic_logger DebugExceptions to fix its removal of the upstream 'log_rescued_responses' check.
6
+ # This allows applications to use the 'config.action_dispatch.log_rescued_responses' setting.
7
+ class DebugExceptions
8
+ private
9
+
10
+ undef_method :log_error
11
+
12
+ def log_error(request, wrapper)
13
+ return if !log_rescued_responses?(request) && wrapper.rescue_response?
14
+
15
+ ActiveSupport::Deprecation.silence do
16
+ ActionController::Base.logger.fatal(wrapper.exception)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module NexusSemanticLogger
3
- # Leave this as 1.7.0 in order for CI process to replace with the tagged version.
4
- VERSION = '1.7.0'
3
+ # Leave this as 1.7.2 in order for CI process to replace with the tagged version.
4
+ VERSION = '1.7.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus_semantic_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johnathon Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-17 00:00:00.000000000 Z
11
+ date: 2022-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -111,6 +111,7 @@ files:
111
111
  - lib/nexus_semantic_logger/datadog_formatter.rb
112
112
  - lib/nexus_semantic_logger/datadog_singleton.rb
113
113
  - lib/nexus_semantic_logger/datadog_tracer.rb
114
+ - lib/nexus_semantic_logger/extensions/action_dispatch/debug_exceptions.rb
114
115
  - lib/nexus_semantic_logger/sneakers_metrics.rb
115
116
  - lib/nexus_semantic_logger/version.rb
116
117
  - nexus_semantic_logger.gemspec