nexus_semantic_logger 1.7.0 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
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