semantic_logger 2.16.0 → 2.17.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/README.md +15 -1
- data/lib/semantic_logger/appender/base.rb +22 -6
- data/lib/semantic_logger/appender/bugsnag.rb +22 -9
- data/lib/semantic_logger/appender/mongodb.rb +17 -5
- data/lib/semantic_logger/appender/new_relic.rb +12 -14
- data/lib/semantic_logger/base.rb +38 -6
- data/lib/semantic_logger/semantic_logger.rb +31 -2
- data/lib/semantic_logger/version.rb +1 -1
- data/test/appender/bugsnag_test.rb +65 -0
- data/test/appender/file_test.rb +79 -0
- data/test/appender/mongodb_test.rb +105 -0
- data/test/appender/new_relic_test.rb +64 -0
- data/test/{newrelic_rpm.rb → appender/newrelic_rpm.rb} +0 -0
- data/test/appender/splunk_test.rb +50 -0
- data/test/appender/syslog_test.rb +63 -0
- data/test/{appender_wrapper_test.rb → appender/wrapper_test.rb} +10 -8
- data/test/loggable_test.rb +21 -11
- data/test/logger_test.rb +97 -69
- data/test/test_helper.rb +2 -1
- metadata +18 -18
- data/test/appender_bugsnag_test.rb +0 -60
- data/test/appender_file_test.rb +0 -77
- data/test/appender_mongodb_test.rb +0 -103
- data/test/appender_new_relic_test.rb +0 -83
- data/test/appender_splunk_test.rb +0 -47
- data/test/appender_syslog_test.rb +0 -61
data/test/logger_test.rb
CHANGED
@@ -9,27 +9,31 @@ class LoggerTest < Minitest::Test
|
|
9
9
|
before do
|
10
10
|
# Use a mock logger that just keeps the last logged entry in an instance
|
11
11
|
# variable
|
12
|
-
SemanticLogger.default_level
|
13
|
-
|
14
|
-
|
15
|
-
appender
|
12
|
+
SemanticLogger.default_level = :trace
|
13
|
+
SemanticLogger.backtrace_level = nil
|
14
|
+
@mock_logger = MockLogger.new
|
15
|
+
@appender = SemanticLogger.add_appender(@mock_logger)
|
16
|
+
@appender.filter = filter
|
16
17
|
|
17
18
|
# Add mock metric subscriber
|
18
|
-
$last_metric
|
19
|
+
$last_metric = nil
|
19
20
|
SemanticLogger.on_metric do |log_struct|
|
20
21
|
$last_metric = log_struct.dup
|
21
22
|
end
|
22
23
|
|
23
24
|
# Use this test's class name as the application name in the log output
|
24
|
-
@logger
|
25
|
-
@hash
|
26
|
-
@hash_str
|
25
|
+
@logger = SemanticLogger[LoggerTest]
|
26
|
+
@hash = {session_id: 'HSSKLEU@JDK767', tracking_number: 12345}
|
27
|
+
@hash_str = @hash.inspect.sub("{", "\\{").sub("}", "\\}")
|
28
|
+
@thread_name = Thread.current.name
|
29
|
+
@file_name_reg_exp = RUBY_VERSION.to_f <= 2.0 ? ' (mock|logger_test).rb:\d+' : ' logger_test.rb:\d+'
|
30
|
+
|
27
31
|
assert_equal [], @logger.tags
|
32
|
+
assert_equal 65535, SemanticLogger.backtrace_level_index
|
28
33
|
end
|
29
34
|
|
30
35
|
after do
|
31
|
-
|
32
|
-
SemanticLogger.appenders.each { |appender| SemanticLogger.remove_appender(appender) }
|
36
|
+
SemanticLogger.remove_appender(@appender)
|
33
37
|
end
|
34
38
|
|
35
39
|
# Ensure that any log level can be logged
|
@@ -37,47 +41,55 @@ class LoggerTest < Minitest::Test
|
|
37
41
|
level_char = level.to_s.upcase[0]
|
38
42
|
|
39
43
|
describe level do
|
40
|
-
it
|
41
|
-
@logger.send(level, 'hello world', @hash) {
|
44
|
+
it 'logs' do
|
45
|
+
@logger.send(level, 'hello world', @hash) { 'Calculations' }
|
42
46
|
SemanticLogger.flush
|
43
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
47
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, @mock_logger.message
|
44
48
|
end
|
45
49
|
|
46
|
-
it
|
50
|
+
it 'exclude log messages using Proc filter' do
|
47
51
|
if filter.is_a?(Proc)
|
48
|
-
@logger.send(level, 'Exclude this log message', @hash) {
|
52
|
+
@logger.send(level, 'Exclude this log message', @hash) { 'Calculations' }
|
49
53
|
SemanticLogger.flush
|
50
54
|
assert_nil @mock_logger.message
|
51
55
|
end
|
52
56
|
end
|
53
57
|
|
54
|
-
it
|
58
|
+
it 'exclude log messages using RegExp filter' do
|
55
59
|
if filter.is_a?(Regexp)
|
56
60
|
logger = SemanticLogger::Logger.new('NotLogger', :trace, filter)
|
57
|
-
logger.send(level, 'Ignore all log messages from this class', @hash) {
|
61
|
+
logger.send(level, 'Ignore all log messages from this class', @hash) { 'Calculations' }
|
58
62
|
SemanticLogger.flush
|
59
63
|
assert_nil @mock_logger.message
|
60
64
|
end
|
61
65
|
end
|
62
66
|
|
67
|
+
it "logs #{level} info with backtrace" do
|
68
|
+
SemanticLogger.stub(:backtrace_level_index, 0) do
|
69
|
+
@logger.send(level, 'hello world', @hash) { 'Calculations' }
|
70
|
+
SemanticLogger.flush
|
71
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}#{@file_name_reg_exp}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, @mock_logger.message
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
63
75
|
end
|
64
76
|
end
|
65
77
|
|
66
|
-
describe
|
67
|
-
it
|
78
|
+
describe 'tagged logging' do
|
79
|
+
it 'add tags to log entries' do
|
68
80
|
@logger.tagged('12345', 'DJHSFK') do
|
69
81
|
@logger.info('Hello world')
|
70
82
|
SemanticLogger.flush
|
71
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
83
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] \[12345\] \[DJHSFK\] LoggerTest -- Hello world/, @mock_logger.message
|
72
84
|
end
|
73
85
|
end
|
74
86
|
|
75
|
-
it
|
87
|
+
it 'add embedded tags to log entries' do
|
76
88
|
@logger.tagged('First Level', 'tags') do
|
77
89
|
@logger.tagged('Second Level') do
|
78
90
|
@logger.info('Hello world')
|
79
91
|
SemanticLogger.flush
|
80
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
92
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] \[First Level\] \[tags\] \[Second Level\] LoggerTest -- Hello world/, @mock_logger.message
|
81
93
|
end
|
82
94
|
assert_equal 2, @logger.tags.count, @logger.tags
|
83
95
|
assert_equal 'First Level', @logger.tags.first
|
@@ -85,20 +97,20 @@ class LoggerTest < Minitest::Test
|
|
85
97
|
end
|
86
98
|
end
|
87
99
|
|
88
|
-
it
|
100
|
+
it 'add payload to log entries' do
|
89
101
|
hash = {tracking_number: "123456", even: 2, more: "data"}
|
90
102
|
hash_str = hash.inspect.sub("{", "\\{").sub("}", "\\}")
|
91
103
|
@logger.with_payload(tracking_number: '123456') do
|
92
104
|
@logger.with_payload(even: 2, more: 'data') do
|
93
105
|
@logger.info('Hello world')
|
94
106
|
SemanticLogger.flush
|
95
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
107
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] LoggerTest -- Hello world -- #{hash_str}/, @mock_logger.message
|
96
108
|
end
|
97
109
|
end
|
98
110
|
end
|
99
111
|
end
|
100
112
|
|
101
|
-
describe
|
113
|
+
describe 'Ruby Logger' do
|
102
114
|
# Ensure that any log level can be logged
|
103
115
|
Logger::Severity.constants.each do |level|
|
104
116
|
it "log Ruby logger #{level} info" do
|
@@ -112,34 +124,34 @@ class LoggerTest < Minitest::Test
|
|
112
124
|
end
|
113
125
|
end
|
114
126
|
|
115
|
-
describe
|
127
|
+
describe 'benchmark' do
|
116
128
|
# Ensure that any log level can be benchmarked and logged
|
117
129
|
SemanticLogger::LEVELS.each do |level|
|
118
130
|
level_char = level.to_s.upcase[0]
|
119
131
|
|
120
132
|
describe 'direct method' do
|
121
133
|
it "log #{level} info" do
|
122
|
-
assert_equal
|
134
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world') { 'result' } # Measure duration of the supplied block
|
123
135
|
SemanticLogger.flush
|
124
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
136
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
125
137
|
end
|
126
138
|
|
127
139
|
it "log #{level} info with payload" do
|
128
|
-
assert_equal
|
140
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world', payload: @hash) { 'result' } # Measure duration of the supplied block
|
129
141
|
SemanticLogger.flush
|
130
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
142
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world -- #{@hash_str}/, @mock_logger.message
|
131
143
|
end
|
132
144
|
|
133
145
|
it "not log #{level} info when block is faster than :min_duration" do
|
134
|
-
assert_equal
|
146
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world', min_duration: 500) { 'result' } # Measure duration of the supplied block
|
135
147
|
SemanticLogger.flush
|
136
148
|
assert_nil @mock_logger.message
|
137
149
|
end
|
138
150
|
|
139
151
|
it "log #{level} info when block duration exceeds :min_duration" do
|
140
|
-
assert_equal
|
152
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world', min_duration: 200, payload: @hash) { sleep 0.5; 'result' } # Measure duration of the supplied block
|
141
153
|
SemanticLogger.flush
|
142
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
154
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world -- #{@hash_str}/, @mock_logger.message
|
143
155
|
end
|
144
156
|
|
145
157
|
it "log #{level} info with an exception" do
|
@@ -147,7 +159,7 @@ class LoggerTest < Minitest::Test
|
|
147
159
|
@logger.send("benchmark_#{level}", 'hello world', payload: @hash) { raise RuntimeError.new("Test") } # Measure duration of the supplied block
|
148
160
|
end
|
149
161
|
SemanticLogger.flush
|
150
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
162
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}#{@file_name_reg_exp}\] \(\d+\.\dms\) LoggerTest -- hello world -- Exception: RuntimeError: Test -- #{@hash_str}/, @mock_logger.message
|
151
163
|
end
|
152
164
|
|
153
165
|
it "change log #{level} info with an exception" do
|
@@ -155,65 +167,81 @@ class LoggerTest < Minitest::Test
|
|
155
167
|
@logger.send("benchmark_#{level}", 'hello world', payload: @hash, on_exception_level: :fatal) { raise RuntimeError.new("Test") } # Measure duration of the supplied block
|
156
168
|
end
|
157
169
|
SemanticLogger.flush
|
158
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ F \[\d
|
170
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ F \[\d+:#{@thread_name}#{@file_name_reg_exp}\] \(\d+\.\dms\) LoggerTest -- hello world -- Exception: RuntimeError: Test -- #{@hash_str}/, @mock_logger.message
|
159
171
|
end
|
160
172
|
|
161
173
|
it "log #{level} info with metric" do
|
162
174
|
metric_name = '/my/custom/metric'
|
163
|
-
assert_equal
|
175
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world', metric: metric_name) { 'result' } # Measure duration of the supplied block
|
164
176
|
SemanticLogger.flush
|
165
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
177
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
166
178
|
assert metric_name, $last_metric.metric
|
167
179
|
end
|
180
|
+
|
181
|
+
it "log #{level} info with backtrace" do
|
182
|
+
SemanticLogger.stub(:backtrace_level_index, 0) do
|
183
|
+
assert_equal 'result', @logger.send("benchmark_#{level}".to_sym, 'hello world') { 'result' }
|
184
|
+
SemanticLogger.flush
|
185
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}#{@file_name_reg_exp}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
186
|
+
end
|
187
|
+
end
|
168
188
|
end
|
169
189
|
|
170
190
|
describe 'generic method' do
|
171
191
|
it "log #{level} info" do
|
172
|
-
assert_equal
|
192
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world') { 'result' } # Measure duration of the supplied block
|
173
193
|
SemanticLogger.flush
|
174
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
194
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
175
195
|
end
|
176
196
|
|
177
197
|
it "log #{level} info with payload" do
|
178
|
-
assert_equal
|
198
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world', payload: @hash) { 'result' } # Measure duration of the supplied block
|
179
199
|
SemanticLogger.flush
|
180
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
200
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world -- #{@hash_str}/, @mock_logger.message
|
181
201
|
end
|
182
202
|
|
183
203
|
it "not log #{level} info when block is faster than :min_duration" do
|
184
|
-
assert_equal
|
204
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world', min_duration: 500) { 'result' } # Measure duration of the supplied block
|
185
205
|
SemanticLogger.flush
|
186
206
|
assert_nil @mock_logger.message
|
187
207
|
end
|
188
208
|
|
189
209
|
it "log #{level} info when block duration exceeds :min_duration" do
|
190
|
-
assert_equal
|
210
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world', min_duration: 200, payload: @hash) { sleep 0.5; 'result' } # Measure duration of the supplied block
|
191
211
|
SemanticLogger.flush
|
192
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
212
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world -- #{@hash_str}/, @mock_logger.message
|
193
213
|
end
|
194
214
|
|
195
215
|
it "log #{level} info with an exception" do
|
196
216
|
assert_raises RuntimeError do
|
197
|
-
@logger.benchmark(level, 'hello world', payload: @hash) { raise RuntimeError.new(
|
217
|
+
@logger.benchmark(level, 'hello world', payload: @hash) { raise RuntimeError.new('Test') } # Measure duration of the supplied block
|
198
218
|
end
|
199
219
|
SemanticLogger.flush
|
200
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
220
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}#{@file_name_reg_exp}\] \(\d+\.\dms\) LoggerTest -- hello world -- Exception: RuntimeError: Test -- #{@hash_str}/, @mock_logger.message
|
201
221
|
end
|
202
222
|
|
203
223
|
it "log #{level} info with metric" do
|
204
224
|
metric_name = '/my/custom/metric'
|
205
|
-
assert_equal
|
225
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world', metric: metric_name) { 'result' } # Measure duration of the supplied block
|
206
226
|
SemanticLogger.flush
|
207
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d
|
227
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
208
228
|
assert metric_name, $last_metric.metric
|
209
229
|
end
|
230
|
+
|
231
|
+
it "log #{level} info with backtrace" do
|
232
|
+
SemanticLogger.stub(:backtrace_level_index, 0) do
|
233
|
+
assert_equal 'result', @logger.benchmark(level, 'hello world') { 'result' }
|
234
|
+
SemanticLogger.flush
|
235
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ #{level_char} \[\d+:#{@thread_name}#{@file_name_reg_exp}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
236
|
+
end
|
237
|
+
end
|
210
238
|
end
|
211
239
|
end
|
212
240
|
|
213
|
-
it
|
214
|
-
assert_equal
|
241
|
+
it 'log when the block performs a return' do
|
242
|
+
assert_equal 'Good', function_with_return(@logger)
|
215
243
|
SemanticLogger.flush
|
216
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
244
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world -- #{@hash_str}/, @mock_logger.message
|
217
245
|
end
|
218
246
|
|
219
247
|
it 'not log at a level below the silence level' do
|
@@ -222,21 +250,21 @@ class LoggerTest < Minitest::Test
|
|
222
250
|
@logger.warn "don't log me"
|
223
251
|
end
|
224
252
|
SemanticLogger.flush
|
225
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
253
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
226
254
|
end
|
227
255
|
|
228
256
|
it 'log at a silence level below the default level' do
|
229
257
|
SemanticLogger.default_level = :info
|
230
258
|
first_message = nil
|
231
259
|
@logger.benchmark_info('hello world', silence: :trace) do
|
232
|
-
@logger.debug('hello world', @hash) {
|
260
|
+
@logger.debug('hello world', @hash) { 'Calculations' }
|
233
261
|
SemanticLogger.flush
|
234
262
|
first_message = @mock_logger.message
|
235
263
|
end
|
236
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ D \[\d
|
264
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ D \[\d+:#{@thread_name}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, first_message
|
237
265
|
SemanticLogger.flush
|
238
266
|
# Only the last log message is kept in mock logger
|
239
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d
|
267
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ I \[\d+:#{@thread_name}\] \(\d+\.\dms\) LoggerTest -- hello world/, @mock_logger.message
|
240
268
|
end
|
241
269
|
end
|
242
270
|
|
@@ -248,7 +276,7 @@ class LoggerTest < Minitest::Test
|
|
248
276
|
it 'not log at a level below the global default' do
|
249
277
|
assert_equal :debug, SemanticLogger.default_level
|
250
278
|
assert_equal :debug, @logger.level
|
251
|
-
@logger.trace('hello world', @hash) {
|
279
|
+
@logger.trace('hello world', @hash) { 'Calculations' }
|
252
280
|
SemanticLogger.flush
|
253
281
|
assert_nil @mock_logger.message
|
254
282
|
end
|
@@ -257,16 +285,16 @@ class LoggerTest < Minitest::Test
|
|
257
285
|
assert_equal :debug, SemanticLogger.default_level
|
258
286
|
@logger.level = :trace
|
259
287
|
assert_equal :trace, @logger.level
|
260
|
-
@logger.trace('hello world', @hash) {
|
288
|
+
@logger.trace('hello world', @hash) { 'Calculations' }
|
261
289
|
SemanticLogger.flush
|
262
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ T \[\d
|
290
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ T \[\d+:#{@thread_name}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, @mock_logger.message
|
263
291
|
end
|
264
292
|
|
265
293
|
it 'not log at a level below the instance level' do
|
266
294
|
assert_equal :debug, SemanticLogger.default_level
|
267
295
|
@logger.level = :warn
|
268
296
|
assert_equal :warn, @logger.level
|
269
|
-
@logger.debug('hello world', @hash) {
|
297
|
+
@logger.debug('hello world', @hash) { 'Calculations' }
|
270
298
|
SemanticLogger.flush
|
271
299
|
assert_nil @mock_logger.message
|
272
300
|
end
|
@@ -281,10 +309,10 @@ class LoggerTest < Minitest::Test
|
|
281
309
|
assert_equal :info, SemanticLogger.default_level
|
282
310
|
assert_equal :info, @logger.level
|
283
311
|
@logger.silence do
|
284
|
-
@logger.warn('hello world', @hash) {
|
285
|
-
@logger.info('hello world', @hash) {
|
286
|
-
@logger.debug('hello world', @hash) {
|
287
|
-
@logger.trace('hello world', @hash) {
|
312
|
+
@logger.warn('hello world', @hash) { 'Calculations' }
|
313
|
+
@logger.info('hello world', @hash) { 'Calculations' }
|
314
|
+
@logger.debug('hello world', @hash) { 'Calculations' }
|
315
|
+
@logger.trace('hello world', @hash) { 'Calculations' }
|
288
316
|
end
|
289
317
|
SemanticLogger.flush
|
290
318
|
assert_nil @mock_logger.message
|
@@ -294,20 +322,20 @@ class LoggerTest < Minitest::Test
|
|
294
322
|
@logger.level = :trace
|
295
323
|
assert_equal :trace, @logger.level
|
296
324
|
@logger.silence do
|
297
|
-
@logger.trace('hello world', @hash) {
|
325
|
+
@logger.trace('hello world', @hash) { 'Calculations' }
|
298
326
|
end
|
299
327
|
SemanticLogger.flush
|
300
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ T \[\d
|
328
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ T \[\d+:#{@thread_name}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, @mock_logger.message
|
301
329
|
end
|
302
330
|
|
303
331
|
it 'log at a silence level below the default level' do
|
304
332
|
assert_equal :info, SemanticLogger.default_level
|
305
333
|
assert_equal :info, @logger.level
|
306
334
|
@logger.silence(:debug) do
|
307
|
-
@logger.debug('hello world', @hash) {
|
335
|
+
@logger.debug('hello world', @hash) { 'Calculations' }
|
308
336
|
end
|
309
337
|
SemanticLogger.flush
|
310
|
-
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ D \[\d
|
338
|
+
assert_match /\d+-\d+-\d+ \d+:\d+:\d+.\d+ D \[\d+:#{@thread_name}\] LoggerTest -- hello world -- Calculations -- #{@hash_str}/, @mock_logger.message
|
311
339
|
end
|
312
340
|
end
|
313
341
|
|
@@ -355,9 +383,9 @@ class LoggerTest < Minitest::Test
|
|
355
383
|
# a function
|
356
384
|
def function_with_return(logger)
|
357
385
|
logger.benchmark_info('hello world', payload: @hash) do
|
358
|
-
return
|
386
|
+
return 'Good'
|
359
387
|
end
|
360
|
-
|
388
|
+
'Bad'
|
361
389
|
end
|
362
390
|
|
363
391
|
end
|
data/test/test_helper.rb
CHANGED
@@ -10,5 +10,6 @@ require 'minitest/stub_any_instance'
|
|
10
10
|
require 'semantic_logger'
|
11
11
|
require 'logger'
|
12
12
|
require_relative 'mock_logger'
|
13
|
+
require 'awesome_print'
|
13
14
|
|
14
|
-
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
|
15
|
+
#Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semantic_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sync_attr
|
@@ -66,18 +66,18 @@ files:
|
|
66
66
|
- lib/semantic_logger/logger.rb
|
67
67
|
- lib/semantic_logger/semantic_logger.rb
|
68
68
|
- lib/semantic_logger/version.rb
|
69
|
-
- test/
|
70
|
-
- test/
|
71
|
-
- test/
|
72
|
-
- test/
|
73
|
-
- test/
|
74
|
-
- test/
|
75
|
-
- test/
|
69
|
+
- test/appender/bugsnag_test.rb
|
70
|
+
- test/appender/file_test.rb
|
71
|
+
- test/appender/mongodb_test.rb
|
72
|
+
- test/appender/new_relic_test.rb
|
73
|
+
- test/appender/newrelic_rpm.rb
|
74
|
+
- test/appender/splunk_test.rb
|
75
|
+
- test/appender/syslog_test.rb
|
76
|
+
- test/appender/wrapper_test.rb
|
76
77
|
- test/debug_as_trace_logger_test.rb
|
77
78
|
- test/loggable_test.rb
|
78
79
|
- test/logger_test.rb
|
79
80
|
- test/mock_logger.rb
|
80
|
-
- test/newrelic_rpm.rb
|
81
81
|
- test/test_helper.rb
|
82
82
|
homepage: https://github.com/rocketjob/semantic_logger
|
83
83
|
licenses:
|
@@ -104,16 +104,16 @@ signing_key:
|
|
104
104
|
specification_version: 4
|
105
105
|
summary: Scalable, next generation enterprise logging for Ruby
|
106
106
|
test_files:
|
107
|
-
- test/
|
108
|
-
- test/
|
109
|
-
- test/
|
110
|
-
- test/
|
111
|
-
- test/
|
112
|
-
- test/
|
113
|
-
- test/
|
107
|
+
- test/appender/bugsnag_test.rb
|
108
|
+
- test/appender/file_test.rb
|
109
|
+
- test/appender/mongodb_test.rb
|
110
|
+
- test/appender/new_relic_test.rb
|
111
|
+
- test/appender/newrelic_rpm.rb
|
112
|
+
- test/appender/splunk_test.rb
|
113
|
+
- test/appender/syslog_test.rb
|
114
|
+
- test/appender/wrapper_test.rb
|
114
115
|
- test/debug_as_trace_logger_test.rb
|
115
116
|
- test/loggable_test.rb
|
116
117
|
- test/logger_test.rb
|
117
118
|
- test/mock_logger.rb
|
118
|
-
- test/newrelic_rpm.rb
|
119
119
|
- test/test_helper.rb
|