prefab-cloud-ruby 0.24.2 → 0.24.3
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/VERSION +1 -1
- data/lib/prefab/logger_client.rb +18 -3
- data/lib/prefab/options.rb +9 -0
- data/prefab-cloud-ruby.gemspec +3 -3
- data/test/test_logger.rb +28 -43
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29a3d9257f166fad534f81a44879cd82abc0cdd729714ab6feb2423d7b913a4d
|
4
|
+
data.tar.gz: b11f8e29260760dd64a78f26c016bd936fe0a5e75100329c645915bddd094ebc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f74cda2cf6f657f72c15d118d9fb622d24d049261436691bff28e42ad5656beb53ec192e148e30e0f025a5becb094682fc68f4860c2cf5b3ed351b7954e3b587
|
7
|
+
data.tar.gz: 90125b61cd874c12376eecc726aa2fef0d6158565150830f95f642f97fad849b53570238593ce617dc39b05960abb47d4c2e6cd4a974e30c69fc40ec2720958b
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.24.
|
1
|
+
0.24.3
|
data/lib/prefab/logger_client.rb
CHANGED
@@ -53,8 +53,9 @@ module Prefab
|
|
53
53
|
|
54
54
|
return true if @logdev.nil? || severity < level_of(path) || @silences[local_log_id]
|
55
55
|
|
56
|
-
|
57
|
-
|
56
|
+
if progname.nil?
|
57
|
+
progname = @progname
|
58
|
+
end
|
58
59
|
if message.nil?
|
59
60
|
if block_given?
|
60
61
|
message = yield
|
@@ -65,7 +66,7 @@ module Prefab
|
|
65
66
|
end
|
66
67
|
|
67
68
|
@logdev.write(
|
68
|
-
format_message(format_severity(severity), Time.now, progname, message)
|
69
|
+
format_message(format_severity(severity), Time.now, progname, message, path)
|
69
70
|
)
|
70
71
|
true
|
71
72
|
end
|
@@ -169,6 +170,20 @@ module Prefab
|
|
169
170
|
path.slice! SEP
|
170
171
|
path
|
171
172
|
end
|
173
|
+
|
174
|
+
def format_message(severity, datetime, progname, msg, path)
|
175
|
+
formatter = (@formatter || @default_formatter)
|
176
|
+
|
177
|
+
if formatter.arity == 5
|
178
|
+
formatter.call(severity, datetime, progname, msg, path)
|
179
|
+
else
|
180
|
+
formatter.call(severity, datetime, join_path_and_progname(path, progname), msg)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def join_path_and_progname(path, progname)
|
185
|
+
(progname.nil? || progname.empty?) ? path : "#{progname}: #{path}"
|
186
|
+
end
|
172
187
|
end
|
173
188
|
|
174
189
|
# StubConfigClient to be used while config client initializes
|
data/lib/prefab/options.rb
CHANGED
@@ -21,6 +21,15 @@ module Prefab
|
|
21
21
|
DEFAULT_LOG_FORMATTER = proc { |severity, datetime, progname, msg|
|
22
22
|
"#{severity.ljust(5)} #{datetime}:#{' ' if progname}#{progname} #{msg}\n"
|
23
23
|
}
|
24
|
+
JSON_LOG_FORMATTER = proc { |severity, datetime, progname, msg, path|
|
25
|
+
{
|
26
|
+
type: severity,
|
27
|
+
time: datetime,
|
28
|
+
progname: progname,
|
29
|
+
message: msg,
|
30
|
+
path: path
|
31
|
+
}.compact.to_json << "\n"
|
32
|
+
}
|
24
33
|
|
25
34
|
module ON_INITIALIZATION_FAILURE
|
26
35
|
RAISE = 1
|
data/prefab-cloud-ruby.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: prefab-cloud-ruby 0.24.
|
5
|
+
# stub: prefab-cloud-ruby 0.24.3 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "prefab-cloud-ruby".freeze
|
9
|
-
s.version = "0.24.
|
9
|
+
s.version = "0.24.3"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Jeff Dwyer".freeze]
|
14
|
-
s.date = "2023-05-
|
14
|
+
s.date = "2023-05-15"
|
15
15
|
s.description = "Feature Flags, Live Config, and Dynamic Log Levels as a service".freeze
|
16
16
|
s.email = "jdwyer@prefab.cloud".freeze
|
17
17
|
s.extra_rdoc_files = [
|
data/test/test_logger.rb
CHANGED
@@ -85,46 +85,47 @@ class TestLogger < Minitest::Test
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def test_log_internal
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
prefab, io = captured_logger
|
89
|
+
prefab.log.log_internal('test message', 'test.path', '', ::Logger::WARN)
|
90
|
+
assert_logged io, 'WARN', "cloud.prefab.client.test.path", "test message"
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_log_internal_unknown
|
94
|
-
|
95
|
-
|
96
|
-
|
94
|
+
prefab, io = captured_logger
|
95
|
+
prefab.log.log_internal('test message', 'test.path', '', ::Logger::UNKNOWN)
|
96
|
+
assert_logged io, 'ANY', "cloud.prefab.client.test.path", "test message"
|
97
97
|
end
|
98
98
|
|
99
99
|
def test_log_internal_silencing
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
logger.log_internal('should not log', 'test.path', '', ::Logger::WARN)
|
100
|
+
prefab, io = captured_logger
|
101
|
+
prefab.log.silence do
|
102
|
+
prefab.log.log_internal('should not log', 'test.path', '', ::Logger::WARN)
|
104
103
|
end
|
105
|
-
|
106
|
-
|
104
|
+
prefab.log.log_internal('should log', 'test.path', '', ::Logger::WARN)
|
105
|
+
assert_logged io, 'WARN', "cloud.prefab.client.test.path", "should log"
|
106
|
+
refute_logged io, 'should not log'
|
107
107
|
end
|
108
108
|
|
109
109
|
def test_log
|
110
|
-
|
111
|
-
|
112
|
-
|
110
|
+
prefab, io = captured_logger
|
111
|
+
prefab.log.log('test message', 'test.path', '', ::Logger::WARN)
|
112
|
+
assert_logged io, 'WARN', "test.path", "test message"
|
113
113
|
end
|
114
114
|
|
115
115
|
def test_log_unknown
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
prefab, io = captured_logger
|
117
|
+
prefab.log.log('test message', 'test.path', '', ::Logger::UNKNOWN)
|
118
|
+
assert_logged io, 'ANY', "test.path", "test message"
|
119
119
|
end
|
120
120
|
|
121
121
|
def test_log_silencing
|
122
|
-
|
123
|
-
|
124
|
-
|
122
|
+
prefab, io = captured_logger
|
123
|
+
prefab.log.silence do
|
124
|
+
prefab.log.log('should not log', 'test.path', '', ::Logger::WARN)
|
125
125
|
end
|
126
|
-
|
127
|
-
|
126
|
+
prefab.log.log('should log', 'test.path', '', ::Logger::WARN)
|
127
|
+
assert_logged io, 'WARN', "test.path", "should log"
|
128
|
+
refute_logged io, 'should not log'
|
128
129
|
end
|
129
130
|
|
130
131
|
def test_logging_with_prefix
|
@@ -163,7 +164,7 @@ class TestLogger < Minitest::Test
|
|
163
164
|
prefab.log.progname = 'MY_PROGNAME'
|
164
165
|
prefab.log.error message
|
165
166
|
|
166
|
-
assert_logged io, 'ERROR', 'MY_PROGNAME test.test_logger.test_logging_with_a_progname', message
|
167
|
+
assert_logged io, 'ERROR', 'MY_PROGNAME: test.test_logger.test_logging_with_a_progname', message
|
167
168
|
end
|
168
169
|
|
169
170
|
def test_logging_with_a_progname_and_no_message
|
@@ -172,7 +173,7 @@ class TestLogger < Minitest::Test
|
|
172
173
|
prefab.log.progname = 'MY_PROGNAME'
|
173
174
|
prefab.log.error
|
174
175
|
|
175
|
-
assert_logged io, 'ERROR', 'MY_PROGNAME test.test_logger.test_logging_with_a_progname_and_no_message', 'MY_PROGNAME'
|
176
|
+
assert_logged io, 'ERROR', 'MY_PROGNAME: test.test_logger.test_logging_with_a_progname_and_no_message', 'MY_PROGNAME'
|
176
177
|
end
|
177
178
|
|
178
179
|
def test_logging_with_criteria_on_top_level_key
|
@@ -399,35 +400,19 @@ class TestLogger < Minitest::Test
|
|
399
400
|
raise 'THIS WILL NEVER BE EVALUATED'
|
400
401
|
end
|
401
402
|
|
402
|
-
assert_logged io, 'ERROR', 'test.test_logger.test_logging_with_a_block',
|
403
|
+
assert_logged io, 'ERROR', 'test.test_logger.test_logging_with_a_block', message
|
403
404
|
end
|
404
405
|
|
405
406
|
private
|
406
407
|
|
407
408
|
def assert_logged(logged_io, level, path, message)
|
408
|
-
assert_match(/#{level}\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [-+]?\d+:\s+#{path}
|
409
|
+
assert_match(/#{level}\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [-+]?\d+:\s+#{path} #{message}\n/, logged_io.string)
|
409
410
|
end
|
410
411
|
|
411
412
|
def refute_logged(logged_io, message)
|
412
413
|
refute_match(/#{message}/, logged_io.string)
|
413
414
|
end
|
414
415
|
|
415
|
-
def mock_logger_expecting(pattern, configs = {}, calls: 1)
|
416
|
-
mock_logdev = Minitest::Mock.new
|
417
|
-
mock_logdev.expect :write, nil do |arg|
|
418
|
-
pattern.match(arg)
|
419
|
-
end
|
420
|
-
|
421
|
-
calls.times.each do
|
422
|
-
mock_logdev.expect(:nil?, false)
|
423
|
-
end
|
424
|
-
|
425
|
-
logger = Prefab::LoggerClient.new($stdout)
|
426
|
-
logger.instance_variable_set('@logdev', mock_logdev)
|
427
|
-
logger.set_config_client(MockConfigClient.new(configs))
|
428
|
-
[logger, mock_logdev]
|
429
|
-
end
|
430
|
-
|
431
416
|
def captured_logger(options = {})
|
432
417
|
io = StringIO.new
|
433
418
|
options = Prefab::Options.new(**options.merge(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prefab-cloud-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.24.
|
4
|
+
version: 0.24.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Dwyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|