contextual_logger 0.10.0 → 0.11.0
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/lib/contextual_logger/logger_with_context.rb +26 -1
- data/lib/contextual_logger/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c5fcdf15e253eb8abb46dde530238633bd584f151e0282526dcfce923b4dc50
|
4
|
+
data.tar.gz: da4e10e4a778d244b2c36640ec4600bc76e4357fd4b0ddfbfef362c2276bbd5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c575941e59fe7196d27528ea0733bd841eb47e45914f8b74add858227fc55161c2cbc2837653033f80ddfea3c3768538c137392d0e3a2b9f64c344982fb281ff
|
7
|
+
data.tar.gz: 199b5c2446a3fe1e6730b352dd23e93c0f9a52e04fffc335b28c6b26e0a2f5e3fe658b9949f57f87b3adba952e2b27ebc493e05dc5a3b2944baefcea0203e099
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'active_support/core_ext/hash/keys'
|
4
|
+
|
3
5
|
module ContextualLogger
|
4
6
|
# A logger that deep_merges additional context and then delegates to the given logger.
|
5
7
|
# Keeps it own log level (called override_level) that may be set independently of the logger it delegates to.
|
@@ -13,7 +15,7 @@ module ContextualLogger
|
|
13
15
|
logger.is_a?(LoggerMixin) or raise ArgumentError, "logger must include ContextualLogger::LoggerMixin (got #{logger.inspect})"
|
14
16
|
@logger = logger
|
15
17
|
self.level = level
|
16
|
-
@context = context
|
18
|
+
@context = normalize_context(context)
|
17
19
|
@merged_context_cache = {} # so we don't have to merge every time
|
18
20
|
end
|
19
21
|
|
@@ -36,6 +38,29 @@ module ContextualLogger
|
|
36
38
|
@logger.write_entry_to_log(severity, timestamp, progname, message, context: merged_context)
|
37
39
|
end
|
38
40
|
|
41
|
+
private
|
42
|
+
|
43
|
+
def normalize_context(context)
|
44
|
+
if warn_on_string_keys(context)
|
45
|
+
context.deep_symbolize_keys
|
46
|
+
else
|
47
|
+
context
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def warn_on_string_keys(context)
|
52
|
+
if deep_key_has_string?(context)
|
53
|
+
ActiveSupport::Deprecation.warn('Context keys must use symbols not strings. This will be asserted as of contextual_logger v1.0.0')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def deep_key_has_string?(hash)
|
58
|
+
hash.any? do |key, value|
|
59
|
+
key.is_a?(String) ||
|
60
|
+
(value.is_a?(Hash) && deep_key_has_string?(value))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
39
64
|
class << self
|
40
65
|
def for_log_source(logger, log_source, level: nil)
|
41
66
|
new(logger, { log_source: log_source }, level: level)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: contextual_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Ebentier
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -56,7 +56,7 @@ licenses:
|
|
56
56
|
metadata:
|
57
57
|
source_code_uri: https://github.com/Invoca/contextual_logger
|
58
58
|
allowed_push_host: https://rubygems.org
|
59
|
-
post_install_message:
|
59
|
+
post_install_message:
|
60
60
|
rdoc_options: []
|
61
61
|
require_paths:
|
62
62
|
- lib
|
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
72
|
version: '0'
|
73
73
|
requirements: []
|
74
74
|
rubygems_version: 3.0.3
|
75
|
-
signing_key:
|
75
|
+
signing_key:
|
76
76
|
specification_version: 4
|
77
77
|
summary: Add context to your logger
|
78
78
|
test_files: []
|