semantic_logger 4.2.0 → 4.2.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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/Rakefile +1 -1
  4. data/lib/semantic_logger/ansi_colors.rb +11 -12
  5. data/lib/semantic_logger/appender.rb +4 -5
  6. data/lib/semantic_logger/appender/async.rb +24 -16
  7. data/lib/semantic_logger/appender/async_batch.rb +1 -4
  8. data/lib/semantic_logger/appender/bugsnag.rb +67 -63
  9. data/lib/semantic_logger/appender/elasticsearch.rb +154 -157
  10. data/lib/semantic_logger/appender/elasticsearch_http.rb +59 -55
  11. data/lib/semantic_logger/appender/file.rb +1 -3
  12. data/lib/semantic_logger/appender/graylog.rb +114 -110
  13. data/lib/semantic_logger/appender/honeybadger.rb +54 -51
  14. data/lib/semantic_logger/appender/http.rb +194 -190
  15. data/lib/semantic_logger/appender/kafka.rb +152 -149
  16. data/lib/semantic_logger/appender/mongodb.rb +3 -3
  17. data/lib/semantic_logger/appender/new_relic.rb +52 -49
  18. data/lib/semantic_logger/appender/sentry.rb +59 -54
  19. data/lib/semantic_logger/appender/splunk.rb +108 -103
  20. data/lib/semantic_logger/appender/splunk_http.rb +82 -79
  21. data/lib/semantic_logger/appender/syslog.rb +4 -5
  22. data/lib/semantic_logger/appender/tcp.rb +8 -29
  23. data/lib/semantic_logger/appender/udp.rb +2 -3
  24. data/lib/semantic_logger/appender/wrapper.rb +2 -2
  25. data/lib/semantic_logger/base.rb +18 -16
  26. data/lib/semantic_logger/concerns/compatibility.rb +0 -1
  27. data/lib/semantic_logger/core_ext/thread.rb +0 -1
  28. data/lib/semantic_logger/formatters.rb +3 -5
  29. data/lib/semantic_logger/formatters/base.rb +2 -3
  30. data/lib/semantic_logger/formatters/color.rb +29 -12
  31. data/lib/semantic_logger/formatters/default.rb +10 -10
  32. data/lib/semantic_logger/formatters/json.rb +0 -2
  33. data/lib/semantic_logger/formatters/one_line.rb +2 -2
  34. data/lib/semantic_logger/formatters/raw.rb +7 -10
  35. data/lib/semantic_logger/formatters/signalfx.rb +3 -5
  36. data/lib/semantic_logger/formatters/syslog.rb +2 -3
  37. data/lib/semantic_logger/formatters/syslog_cee.rb +2 -3
  38. data/lib/semantic_logger/jruby/garbage_collection_logger.rb +8 -5
  39. data/lib/semantic_logger/log.rb +17 -17
  40. data/lib/semantic_logger/loggable.rb +6 -9
  41. data/lib/semantic_logger/logger.rb +0 -1
  42. data/lib/semantic_logger/metric/new_relic.rb +58 -55
  43. data/lib/semantic_logger/metric/signalfx.rb +108 -106
  44. data/lib/semantic_logger/metric/statsd.rb +2 -3
  45. data/lib/semantic_logger/processor.rb +9 -9
  46. data/lib/semantic_logger/semantic_logger.rb +50 -30
  47. data/lib/semantic_logger/subscriber.rb +0 -1
  48. data/lib/semantic_logger/utils.rb +37 -37
  49. data/lib/semantic_logger/version.rb +2 -2
  50. data/test/appender/async_batch_test.rb +0 -1
  51. data/test/appender/async_test.rb +0 -1
  52. data/test/appender/bugsnag_test.rb +7 -8
  53. data/test/appender/elasticsearch_http_test.rb +5 -6
  54. data/test/appender/elasticsearch_test.rb +14 -10
  55. data/test/appender/file_test.rb +5 -6
  56. data/test/appender/graylog_test.rb +8 -8
  57. data/test/appender/honeybadger_test.rb +6 -7
  58. data/test/appender/http_test.rb +4 -5
  59. data/test/appender/kafka_test.rb +5 -6
  60. data/test/appender/mongodb_test.rb +11 -13
  61. data/test/appender/new_relic_test.rb +8 -9
  62. data/test/appender/newrelic_rpm.rb +1 -1
  63. data/test/appender/sentry_test.rb +7 -8
  64. data/test/appender/splunk_http_test.rb +4 -4
  65. data/test/appender/splunk_test.rb +1 -3
  66. data/test/appender/syslog_test.rb +3 -5
  67. data/test/appender/tcp_test.rb +4 -5
  68. data/test/appender/udp_test.rb +4 -5
  69. data/test/appender/wrapper_test.rb +2 -3
  70. data/test/concerns/compatibility_test.rb +0 -1
  71. data/test/debug_as_trace_logger_test.rb +0 -1
  72. data/test/formatters/color_test.rb +5 -6
  73. data/test/formatters/default_test.rb +16 -17
  74. data/test/formatters/one_line_test.rb +1 -2
  75. data/test/formatters/signalfx_test.rb +8 -11
  76. data/test/formatters_test.rb +3 -3
  77. data/test/in_memory_appender.rb +0 -1
  78. data/test/in_memory_appender_helper.rb +1 -1
  79. data/test/in_memory_batch_appender.rb +0 -1
  80. data/test/in_memory_metrics_appender.rb +0 -1
  81. data/test/loggable_test.rb +2 -3
  82. data/test/logger_test.rb +11 -14
  83. data/test/measure_test.rb +13 -15
  84. data/test/metric/new_relic_test.rb +2 -3
  85. data/test/metric/signalfx_test.rb +4 -5
  86. data/test/semantic_logger_test.rb +28 -3
  87. data/test/test_helper.rb +6 -7
  88. metadata +34 -34
data/test/measure_test.rb CHANGED
@@ -46,7 +46,7 @@ class MeasureTest < Minitest::Test
46
46
 
47
47
  it ':exception' do
48
48
  assert_raises RuntimeError do
49
- logger.send(measure_level, 'hello world', payload: payload) { raise RuntimeError.new('Test') }
49
+ logger.send(measure_level, 'hello world', payload: payload) { raise 'Test' }
50
50
  end
51
51
 
52
52
  assert log = log_message
@@ -57,7 +57,7 @@ class MeasureTest < Minitest::Test
57
57
 
58
58
  it ':on_exception_level' do
59
59
  assert_raises RuntimeError do
60
- logger.measure(level, 'hello world', payload: payload, on_exception_level: :fatal) { raise RuntimeError.new('Test') }
60
+ logger.measure(level, 'hello world', payload: payload, on_exception_level: :fatal) { raise 'Test' }
61
61
  end
62
62
 
63
63
  assert log = log_message
@@ -69,7 +69,7 @@ class MeasureTest < Minitest::Test
69
69
  describe 'log_exception' do
70
70
  it 'default' do
71
71
  assert_raises RuntimeError do
72
- logger.send(measure_level, 'hello world') { raise RuntimeError.new('Test') }
72
+ logger.send(measure_level, 'hello world') { raise 'Test' }
73
73
  end
74
74
 
75
75
  assert log = log_message
@@ -79,7 +79,7 @@ class MeasureTest < Minitest::Test
79
79
 
80
80
  it ':full' do
81
81
  assert_raises RuntimeError do
82
- logger.send(measure_level, 'hello world', log_exception: :full) { raise RuntimeError.new('Test') }
82
+ logger.send(measure_level, 'hello world', log_exception: :full) { raise 'Test' }
83
83
  end
84
84
 
85
85
  assert log = log_message
@@ -91,7 +91,7 @@ class MeasureTest < Minitest::Test
91
91
 
92
92
  it ':partial' do
93
93
  assert_raises RuntimeError do
94
- logger.send(measure_level, 'hello world', log_exception: :partial) { raise RuntimeError.new('Test') }
94
+ logger.send(measure_level, 'hello world', log_exception: :partial) { raise 'Test' }
95
95
  end
96
96
 
97
97
  assert log = log_message
@@ -101,7 +101,7 @@ class MeasureTest < Minitest::Test
101
101
 
102
102
  it ':none' do
103
103
  assert_raises RuntimeError do
104
- logger.send(measure_level, 'hello world', log_exception: :none) { raise RuntimeError.new('Test') }
104
+ logger.send(measure_level, 'hello world', log_exception: :none) { raise 'Test' }
105
105
  end
106
106
 
107
107
  assert log = log_message
@@ -124,7 +124,7 @@ class MeasureTest < Minitest::Test
124
124
 
125
125
  assert log = log_message
126
126
  assert log.backtrace
127
- assert log.backtrace.size > 0
127
+ assert log.backtrace.size.positive?
128
128
 
129
129
  # Extract file name and line number from backtrace
130
130
  h = log.to_h
@@ -171,7 +171,7 @@ class MeasureTest < Minitest::Test
171
171
 
172
172
  it ':exception' do
173
173
  assert_raises RuntimeError do
174
- logger.measure(level, 'hello world', payload: payload) { raise RuntimeError.new('Test') }
174
+ logger.measure(level, 'hello world', payload: payload) { raise 'Test' }
175
175
  end
176
176
 
177
177
  assert log = log_message
@@ -182,7 +182,7 @@ class MeasureTest < Minitest::Test
182
182
 
183
183
  it ':on_exception_level' do
184
184
  assert_raises RuntimeError do
185
- logger.measure(level, 'hello world', payload: payload, on_exception_level: :fatal) { raise RuntimeError.new('Test') }
185
+ logger.measure(level, 'hello world', payload: payload, on_exception_level: :fatal) { raise 'Test' }
186
186
  end
187
187
 
188
188
  assert log = log_message
@@ -205,7 +205,7 @@ class MeasureTest < Minitest::Test
205
205
 
206
206
  assert log = log_message
207
207
  assert log.backtrace
208
- assert log.backtrace.size > 0
208
+ assert log.backtrace.size.positive?
209
209
 
210
210
  # Extract file name and line number from backtrace
211
211
  h = log.to_h
@@ -253,7 +253,7 @@ class MeasureTest < Minitest::Test
253
253
 
254
254
  it ':exception' do
255
255
  assert_raises RuntimeError do
256
- logger.send(measure_level, message: 'hello world', payload: payload) { raise RuntimeError.new('Test') }
256
+ logger.send(measure_level, message: 'hello world', payload: payload) { raise 'Test' }
257
257
  end
258
258
 
259
259
  assert log = log_message
@@ -264,7 +264,7 @@ class MeasureTest < Minitest::Test
264
264
 
265
265
  it ':on_exception_level' do
266
266
  assert_raises RuntimeError do
267
- logger.send(measure_level, message: 'hello world', payload: payload, on_exception_level: :fatal) { raise RuntimeError.new('Test') }
267
+ logger.send(measure_level, message: 'hello world', payload: payload, on_exception_level: :fatal) { raise 'Test' }
268
268
  end
269
269
 
270
270
  assert log = log_message
@@ -287,7 +287,7 @@ class MeasureTest < Minitest::Test
287
287
 
288
288
  assert log = log_message
289
289
  assert log.backtrace
290
- assert log.backtrace.size > 0
290
+ assert log.backtrace.size.positive?
291
291
 
292
292
  # Extract file name and line number from backtrace
293
293
  h = log.to_h
@@ -296,7 +296,6 @@ class MeasureTest < Minitest::Test
296
296
  end
297
297
  end
298
298
  end
299
-
300
299
  end
301
300
 
302
301
  describe 'return' do
@@ -343,6 +342,5 @@ class MeasureTest < Minitest::Test
343
342
  end
344
343
  'Bad'
345
344
  end
346
-
347
345
  end
348
346
  end
@@ -6,7 +6,6 @@ require_relative '../test_helper'
6
6
  module Metric
7
7
  class NewRelicTest < Minitest::Test
8
8
  describe SemanticLogger::Appender::NewRelic do
9
-
10
9
  before do
11
10
  @appender = SemanticLogger::Metric::NewRelic.new
12
11
  @message = 'AppenderNewRelicTest log message'
@@ -14,7 +13,7 @@ module Metric
14
13
 
15
14
  it 'logs counter metric' do
16
15
  name = amount = nil
17
- NewRelic::Agent.stub(:increment_metric, -> name_, amount_ { name = name_, amount = amount_ }) do
16
+ NewRelic::Agent.stub(:increment_metric, ->(name_, amount_) { name = name_, amount = amount_ }) do
18
17
  @appender.info(message: @message, metric: 'User/authenticated')
19
18
  end
20
19
  assert_equal 'Custom/User/authenticated', name.first
@@ -23,7 +22,7 @@ module Metric
23
22
 
24
23
  it 'logs duration metric' do
25
24
  name = duration = nil
26
- NewRelic::Agent.stub(:record_metric, -> name_, duration_ { name = name_, duration = duration_ }) do
25
+ NewRelic::Agent.stub(:record_metric, ->(name_, duration_) { name = name_, duration = duration_ }) do
27
26
  @appender.measure_info(message: @message, metric: 'User/authenticate') do
28
27
  sleep 0.001
29
28
  end
@@ -27,7 +27,7 @@ module Appender
27
27
  else
28
28
  response_mock = Struct.new(:code, :body)
29
29
  request = nil
30
- appender.http.stub(:request, -> r { request = r; response_mock.new('200', 'ok') }) do
30
+ appender.http.stub(:request, ->(r) { request = r; response_mock.new('200', 'ok') }) do
31
31
  appender.log(@log)
32
32
  end
33
33
  end
@@ -50,7 +50,7 @@ module Appender
50
50
 
51
51
  it 'whitelists dimensions' do
52
52
  @log.named_tags = {user_id: 47, application: 'sample', tracking_number: 7474, session_id: 'hsdhngsd'}
53
- appender.formatter.dimensions = [:user_id, :application]
53
+ appender.formatter.dimensions = %i[user_id application]
54
54
  assert response
55
55
  end
56
56
  end
@@ -62,17 +62,16 @@ module Appender
62
62
 
63
63
  it 'not logs when no metric' do
64
64
  @log.message = 'blah'
65
- @log.metric = nil
65
+ @log.metric = nil
66
66
  refute appender.should_log?(@log)
67
67
  end
68
68
 
69
69
  it 'logs metric only metric with dimensions' do
70
- @log.metric = 'Filter/count'
70
+ @log.metric = 'Filter/count'
71
71
  @log.dimensions = {action: 'hit', user: 'jbloggs', state: 'FL'}
72
72
  assert appender.should_log?(@log)
73
73
  end
74
74
  end
75
-
76
75
  end
77
76
  end
78
77
  end
@@ -124,7 +124,7 @@ class SemanticLoggerTest < Minitest::Test
124
124
  logger.info('Hello world')
125
125
 
126
126
  assert log = log_message
127
- assert_equal %w(12345 DJHSFK), log.tags
127
+ assert_equal %w[12345 DJHSFK], log.tags
128
128
  end
129
129
  end
130
130
 
@@ -190,7 +190,7 @@ class SemanticLoggerTest < Minitest::Test
190
190
  logger.info('Hello world')
191
191
 
192
192
  assert log = log_message
193
- assert_equal %w(12345), log.tags
193
+ assert_equal %w[12345], log.tags
194
194
  end
195
195
  end
196
196
  end
@@ -272,7 +272,32 @@ class SemanticLoggerTest < Minitest::Test
272
272
  end
273
273
  end
274
274
 
275
- end
275
+ describe '.on_log' do
276
+ before do
277
+ SemanticLogger.default_level = :info
278
+ end
279
+
280
+ after do
281
+ SemanticLogger::Processor.instance.appender.log_subscribers = nil
282
+ end
283
+
284
+ it 'registers a log listener' do
285
+ SemanticLogger.on_log do |log|
286
+ log.set_context(:custom_info, 'test')
287
+ end
288
+
289
+ assert_equal :info, SemanticLogger.default_level
290
+ assert_equal :info, logger.level
291
+ logger.silence(:debug) do
292
+ logger.debug('hello world')
293
+ end
276
294
 
295
+ assert log = log_message
296
+ assert_equal :debug, log.level
297
+ assert_equal 'hello world', log.message
298
+ assert_equal 'test', log.context[:custom_info]
299
+ end
300
+ end
301
+ end
277
302
  end
278
303
  end
data/test/test_helper.rb CHANGED
@@ -8,25 +8,24 @@ require 'minitest/autorun'
8
8
  require 'minitest/reporters'
9
9
  require 'minitest/stub_any_instance'
10
10
  require 'semantic_logger'
11
- #require 'logger'
11
+ # require 'logger'
12
12
  require_relative 'in_memory_appender'
13
13
  require_relative 'in_memory_batch_appender'
14
14
  require_relative 'in_memory_metrics_appender'
15
15
  require_relative 'in_memory_appender_helper'
16
16
  require 'awesome_print'
17
17
 
18
- #Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
18
+ # Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
19
19
  class Minitest::Test
20
20
  # Use AwesomePrint to display diffs
21
21
  define_method :mu_pp, &:awesome_inspect
22
22
 
23
23
  # Use AwesomePrint to display messages
24
- def message msg = nil, ending = nil, &default
24
+ def message(msg = nil, ending = nil)
25
25
  proc {
26
- msg = msg.call.chomp(".") if Proc === msg
27
- custom_message = "#{msg.ai}.\n" unless msg.nil? or msg.to_s.empty?
28
- "#{custom_message}#{default.call}#{ending || "."}"
26
+ msg = msg.call.chomp('.') if Proc === msg
27
+ custom_message = "#{msg.ai}.\n" unless msg.nil? || msg.to_s.empty?
28
+ "#{custom_message}#{yield}#{ending || '.'}"
29
29
  }
30
30
  end
31
-
32
31
  end
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: 4.2.0
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-28 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -24,8 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
- description: Next generation logging system for Ruby to support highly concurrent,
28
- high throughput, low latency enterprise systems
27
+ description:
29
28
  email:
30
29
  - reidmo@gmail.com
31
30
  executables: []
@@ -133,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
132
  requirements:
134
133
  - - ">="
135
134
  - !ruby/object:Gem::Version
136
- version: '2.1'
135
+ version: '2.3'
137
136
  required_rubygems_version: !ruby/object:Gem::Requirement
138
137
  requirements:
139
138
  - - ">="
@@ -141,46 +140,47 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
140
  version: '0'
142
141
  requirements: []
143
142
  rubyforge_project:
144
- rubygems_version: 2.6.11
143
+ rubygems_version: 2.6.13
145
144
  signing_key:
146
145
  specification_version: 4
147
- summary: Scalable, next generation enterprise logging for Ruby
146
+ summary: Feature rich logging framework, and replacement for existing Ruby & Rails
147
+ loggers.
148
148
  test_files:
149
- - test/appender/async_batch_test.rb
150
- - test/appender/async_test.rb
151
- - test/appender/bugsnag_test.rb
152
- - test/appender/elasticsearch_http_test.rb
153
- - test/appender/elasticsearch_test.rb
154
- - test/appender/file_test.rb
155
- - test/appender/graylog_test.rb
156
- - test/appender/honeybadger_test.rb
157
- - test/appender/http_test.rb
158
- - test/appender/kafka_test.rb
159
- - test/appender/mongodb_test.rb
160
- - test/appender/new_relic_test.rb
161
- - test/appender/newrelic_rpm.rb
162
149
  - test/appender/sentry_test.rb
163
150
  - test/appender/splunk_http_test.rb
151
+ - test/appender/honeybadger_test.rb
164
152
  - test/appender/splunk_test.rb
153
+ - test/appender/graylog_test.rb
165
154
  - test/appender/syslog_test.rb
155
+ - test/appender/async_batch_test.rb
156
+ - test/appender/newrelic_rpm.rb
166
157
  - test/appender/tcp_test.rb
167
- - test/appender/udp_test.rb
158
+ - test/appender/mongodb_test.rb
159
+ - test/appender/elasticsearch_http_test.rb
160
+ - test/appender/new_relic_test.rb
168
161
  - test/appender/wrapper_test.rb
169
- - test/concerns/compatibility_test.rb
170
- - test/debug_as_trace_logger_test.rb
162
+ - test/appender/file_test.rb
163
+ - test/appender/udp_test.rb
164
+ - test/appender/async_test.rb
165
+ - test/appender/kafka_test.rb
166
+ - test/appender/elasticsearch_test.rb
167
+ - test/appender/bugsnag_test.rb
168
+ - test/appender/http_test.rb
169
+ - test/logger_test.rb
170
+ - test/loggable_test.rb
171
+ - test/measure_test.rb
172
+ - test/in_memory_batch_appender.rb
173
+ - test/in_memory_appender_helper.rb
171
174
  - test/formatters/color_test.rb
172
- - test/formatters/default_test.rb
173
- - test/formatters/one_line_test.rb
174
175
  - test/formatters/signalfx_test.rb
176
+ - test/formatters/one_line_test.rb
177
+ - test/formatters/default_test.rb
178
+ - test/semantic_logger_test.rb
175
179
  - test/formatters_test.rb
176
- - test/in_memory_appender.rb
177
- - test/in_memory_appender_helper.rb
178
- - test/in_memory_batch_appender.rb
179
- - test/in_memory_metrics_appender.rb
180
- - test/loggable_test.rb
181
- - test/logger_test.rb
182
- - test/measure_test.rb
180
+ - test/test_helper.rb
181
+ - test/debug_as_trace_logger_test.rb
183
182
  - test/metric/new_relic_test.rb
184
183
  - test/metric/signalfx_test.rb
185
- - test/semantic_logger_test.rb
186
- - test/test_helper.rb
184
+ - test/in_memory_metrics_appender.rb
185
+ - test/concerns/compatibility_test.rb
186
+ - test/in_memory_appender.rb