prefab-cloud-ruby 0.24.2 → 0.24.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|