contextual_logger 0.9.1 → 0.10.0.pre.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/lib/contextual_logger.rb +45 -40
- data/lib/contextual_logger/version.rb +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: 802c31d7f8703a4105e7ff1b0cd53b2a692cc92d3a6a9d2760f6cd34e6445f93
|
4
|
+
data.tar.gz: 847378acf2d1b5b9bdb2340a0d7e5712466eae68604c292e5138669333357fe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8ee88e23ea62d3a1a69d2b3ed194a5b85533a4abf6fd3c4ad228ba99e49abff064dfff7731135f77389f2b8b9ff99722b0485f2c74f1ab97986151f9de2a861
|
7
|
+
data.tar.gz: af21224421af963cd2134114b136764eacfff5a76842feeb125f3e20aaf8c477f0869f4bc55613d3d94d39e17f54353078cb357fed813700d4d88dc6fc3ff207
|
data/lib/contextual_logger.rb
CHANGED
@@ -7,6 +7,16 @@ require_relative './contextual_logger/redactor'
|
|
7
7
|
require_relative './contextual_logger/context/handler'
|
8
8
|
|
9
9
|
module ContextualLogger
|
10
|
+
LOG_LEVEL_NAMES_TO_SEVERITY =
|
11
|
+
{
|
12
|
+
debug: Logger::Severity::DEBUG,
|
13
|
+
info: Logger::Severity::INFO,
|
14
|
+
warn: Logger::Severity::WARN,
|
15
|
+
error: Logger::Severity::ERROR,
|
16
|
+
fatal: Logger::Severity::FATAL,
|
17
|
+
unknown: Logger::Severity::UNKNOWN
|
18
|
+
}.freeze
|
19
|
+
|
10
20
|
class << self
|
11
21
|
def new(logger)
|
12
22
|
logger.extend(LoggerMixin)
|
@@ -17,22 +27,8 @@ module ContextualLogger
|
|
17
27
|
if log_level.is_a?(Integer) && (Logger::Severity::DEBUG..Logger::Severity::UNKNOWN).include?(log_level)
|
18
28
|
log_level
|
19
29
|
else
|
20
|
-
|
21
|
-
when 'debug'
|
22
|
-
Logger::Severity::DEBUG
|
23
|
-
when 'info'
|
24
|
-
Logger::Severity::INFO
|
25
|
-
when 'warn'
|
26
|
-
Logger::Severity::WARN
|
27
|
-
when 'error'
|
28
|
-
Logger::Severity::ERROR
|
29
|
-
when 'fatal'
|
30
|
-
Logger::Severity::FATAL
|
31
|
-
when 'unknown'
|
32
|
-
Logger::Severity::UNKNOWN
|
33
|
-
else
|
30
|
+
LOG_LEVEL_NAMES_TO_SEVERITY[log_level.to_s.downcase.to_sym] or
|
34
31
|
raise ArgumentError, "invalid log level: #{log_level.inspect}"
|
35
|
-
end
|
36
32
|
end
|
37
33
|
end
|
38
34
|
|
@@ -72,45 +68,54 @@ module ContextualLogger
|
|
72
68
|
Context::Handler.current_context
|
73
69
|
end
|
74
70
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
add(Logger::Severity::INFO, message.nil? && block_given? ? yield : message, **context)
|
81
|
-
end
|
71
|
+
# In the methods generated below, we assume that presence of context means new code that is
|
72
|
+
# aware of ContextualLogger...and that that code never uses progname.
|
73
|
+
# This is important because we only get 3 args total (not including &block) passed to `add`,
|
74
|
+
# in order to be compatible with classic implementations like in the plain ::Logger and
|
75
|
+
# ActiveSupport::Logger.broadcast.
|
82
76
|
|
83
|
-
|
84
|
-
|
85
|
-
|
77
|
+
# Note that we can't yield before `add` because `add` might skip it based on log_level. And we can't check
|
78
|
+
# log_level here because we might be running in ActiveSupport::Logging.broadcast which has multiple
|
79
|
+
# loggers, each with their own log_level.
|
86
80
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
81
|
+
LOG_LEVEL_NAMES_TO_SEVERITY.each do |method_name, log_level|
|
82
|
+
class_eval(<<~EOS, __FILE__, __LINE__ + 1)
|
83
|
+
def #{method_name}(arg = nil, **context, &block)
|
84
|
+
if context.empty?
|
85
|
+
add(#{log_level}, nil, arg, &block)
|
86
|
+
else
|
87
|
+
if arg.nil?
|
88
|
+
add(#{log_level}, nil, context, &block)
|
89
|
+
elsif block
|
90
|
+
add(#{log_level}, nil, context) do
|
91
|
+
"\#{ContextualLogger.normalize_message(arg)}: \#{ContextualLogger.normalize_message(block.call)}"
|
92
|
+
end
|
93
|
+
else
|
94
|
+
add(#{log_level}, arg, context)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
EOS
|
97
99
|
end
|
98
100
|
|
99
101
|
def log_level_enabled?(severity)
|
100
102
|
severity >= level
|
101
103
|
end
|
102
104
|
|
103
|
-
def add(
|
104
|
-
severity =
|
105
|
+
def add(arg_severity, arg1 = nil, arg2 = nil, **context) # Ruby will prefer to match hashes up to last ** argument
|
106
|
+
severity = arg_severity || UNKNOWN
|
105
107
|
if log_level_enabled?(severity)
|
106
|
-
|
107
|
-
if message.nil?
|
108
|
+
if arg1.nil?
|
108
109
|
if block_given?
|
109
110
|
message = yield
|
111
|
+
progname = arg2 || @progname
|
110
112
|
else
|
111
|
-
message =
|
113
|
+
message = arg2
|
112
114
|
progname = @progname
|
113
115
|
end
|
116
|
+
else
|
117
|
+
message = arg1
|
118
|
+
progname = arg2 || @progname
|
114
119
|
end
|
115
120
|
write_entry_to_log(severity, Time.now, progname, message, context: current_context_for_thread.deep_merge(context))
|
116
121
|
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.10.0.pre.1
|
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-08-
|
11
|
+
date: 2020-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -67,9 +67,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
67
67
|
version: '0'
|
68
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
69
|
requirements:
|
70
|
-
- - "
|
70
|
+
- - ">"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
72
|
+
version: 1.3.1
|
73
73
|
requirements: []
|
74
74
|
rubygems_version: 3.0.3
|
75
75
|
signing_key:
|