contextual_logger 0.5.1 → 0.6.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.rb +28 -8
- data/lib/contextual_logger/redactor.rb +28 -0
- data/lib/contextual_logger/version.rb +5 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0118241ab98c2c3ec5f47741cc2e173a22bd4c13'
|
4
|
+
data.tar.gz: 3370e95855bc8c7076581ea19564af108b0e9e1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54580c2fc2920f81203dba48b911be2034e93892d6cab427b93557c54e9f227e09f7ad6c04ec6bd74cd9d758fbf3a72acd7923f63cfb5c5cd264d60e92d5ef0c
|
7
|
+
data.tar.gz: dbde45342044cfba8a7c98e15febf3fc2d800b398fdfd07d26e38682b255d8eac90e55c8e43795e14f786cd15e6976f47a508f32fe186b1ac728930456a9588b
|
data/lib/contextual_logger.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'active_support'
|
4
4
|
require 'json'
|
5
|
+
require_relative './contextual_logger/redactor'
|
5
6
|
require_relative './contextual_logger/context/handler'
|
6
7
|
|
7
8
|
module ContextualLogger
|
@@ -32,9 +33,20 @@ module ContextualLogger
|
|
32
33
|
end
|
33
34
|
end
|
34
35
|
end
|
36
|
+
|
37
|
+
def normalize_message(message)
|
38
|
+
case message
|
39
|
+
when String
|
40
|
+
message
|
41
|
+
else
|
42
|
+
message.inspect
|
43
|
+
end
|
44
|
+
end
|
35
45
|
end
|
36
46
|
|
37
47
|
module LoggerMixin
|
48
|
+
delegate :register_secret, to: :redactor
|
49
|
+
|
38
50
|
def global_context=(context)
|
39
51
|
Context::Handler.new(context).set!
|
40
52
|
end
|
@@ -59,27 +71,27 @@ module ContextualLogger
|
|
59
71
|
end
|
60
72
|
|
61
73
|
def debug(message = nil, context = {})
|
62
|
-
add(Logger::Severity::DEBUG, message
|
74
|
+
add(Logger::Severity::DEBUG, message.nil? && block_given? ? yield : message, **context)
|
63
75
|
end
|
64
76
|
|
65
77
|
def info(message = nil, context = {})
|
66
|
-
add(Logger::Severity::INFO, message
|
78
|
+
add(Logger::Severity::INFO, message.nil? && block_given? ? yield : message, **context)
|
67
79
|
end
|
68
80
|
|
69
81
|
def warn(message = nil, context = {})
|
70
|
-
add(Logger::Severity::WARN, message
|
82
|
+
add(Logger::Severity::WARN, message.nil? && block_given? ? yield : message, **context)
|
71
83
|
end
|
72
84
|
|
73
85
|
def error(message = nil, context = {})
|
74
|
-
add(Logger::Severity::ERROR, message
|
86
|
+
add(Logger::Severity::ERROR, message.nil? && block_given? ? yield : message, **context)
|
75
87
|
end
|
76
88
|
|
77
89
|
def fatal(message = nil, context = {})
|
78
|
-
add(Logger::Severity::FATAL, message
|
90
|
+
add(Logger::Severity::FATAL, message.nil? && block_given? ? yield : message, **context)
|
79
91
|
end
|
80
92
|
|
81
93
|
def unknown(message = nil, context = {})
|
82
|
-
add(Logger::Severity::UNKNOWN, message
|
94
|
+
add(Logger::Severity::UNKNOWN, message.nil? && block_given? ? yield : message, **context)
|
83
95
|
end
|
84
96
|
|
85
97
|
def log_level_enabled?(severity)
|
@@ -105,11 +117,19 @@ module ContextualLogger
|
|
105
117
|
end
|
106
118
|
|
107
119
|
def write_entry_to_log(severity, timestamp, progname, message, context:)
|
108
|
-
@logdev&.write(
|
120
|
+
@logdev&.write(
|
121
|
+
redactor.redact(
|
122
|
+
format_message(format_severity(severity), timestamp, progname, message, context: context)
|
123
|
+
)
|
124
|
+
)
|
109
125
|
end
|
110
126
|
|
111
127
|
private
|
112
128
|
|
129
|
+
def redactor
|
130
|
+
@redactor ||= Redactor.new
|
131
|
+
end
|
132
|
+
|
113
133
|
def format_message(severity, timestamp, progname, message, context: {})
|
114
134
|
message_hash = message_hash_with_context(severity, timestamp, progname, message, context: context)
|
115
135
|
|
@@ -123,7 +143,7 @@ module ContextualLogger
|
|
123
143
|
def message_hash_with_context(severity, timestamp, progname, message, context:)
|
124
144
|
message_hash =
|
125
145
|
{
|
126
|
-
message: message,
|
146
|
+
message: ContextualLogger.normalize_message(message),
|
127
147
|
severity: severity,
|
128
148
|
timestamp: timestamp
|
129
149
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ContextualLogger
|
4
|
+
class Redactor
|
5
|
+
attr_reader :redaction_set, :redaction_regex
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@redaction_set = Set.new
|
9
|
+
@redaction_regex = nil
|
10
|
+
end
|
11
|
+
|
12
|
+
def register_secret(sensitive_data)
|
13
|
+
if redaction_set.add?(Regexp.escape(sensitive_data))
|
14
|
+
@redaction_regex = Regexp.new(
|
15
|
+
redaction_set.to_a.join('|')
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def redact(log_line)
|
21
|
+
if redaction_regex
|
22
|
+
log_line.gsub(redaction_regex, '<redacted>')
|
23
|
+
else
|
24
|
+
log_line
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Ebentier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -48,6 +48,8 @@ files:
|
|
48
48
|
- lib/contextual_logger/context/handler.rb
|
49
49
|
- lib/contextual_logger/logger_with_context.rb
|
50
50
|
- lib/contextual_logger/overrides/active_support/tagged_logging/formatter.rb
|
51
|
+
- lib/contextual_logger/redactor.rb
|
52
|
+
- lib/contextual_logger/version.rb
|
51
53
|
homepage: https://rubygems.org/gems/contextual_logger
|
52
54
|
licenses:
|
53
55
|
- MIT
|