loga 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +4 -0
  3. data/circle.yml +4 -4
  4. data/gemfiles/rails50.gemfile +11 -0
  5. data/lib/loga/ext/rails/rack/{logger4.rb → logger.rb} +0 -0
  6. data/lib/loga/rack/logger.rb +1 -0
  7. data/lib/loga/rack/request.rb +11 -0
  8. data/lib/loga/railtie.rb +12 -3
  9. data/lib/loga/version.rb +1 -1
  10. data/loga.gemspec +2 -7
  11. data/spec/fixtures/README.md +5 -2
  12. data/spec/fixtures/rails50/Rakefile +6 -0
  13. data/spec/fixtures/rails50/app/controllers/application_controller.rb +28 -0
  14. data/spec/fixtures/rails50/app/helpers/application_helper.rb +2 -0
  15. data/spec/fixtures/rails50/app/views/layouts/application.html.erb +13 -0
  16. data/spec/fixtures/rails50/app/views/user.html.erb +1 -0
  17. data/spec/fixtures/rails50/bin/bundle +3 -0
  18. data/spec/fixtures/rails50/bin/rails +4 -0
  19. data/spec/fixtures/rails50/bin/rake +4 -0
  20. data/spec/fixtures/rails50/bin/setup +34 -0
  21. data/spec/fixtures/rails50/bin/update +29 -0
  22. data/spec/fixtures/rails50/config.ru +5 -0
  23. data/spec/fixtures/rails50/config/application.rb +34 -0
  24. data/spec/fixtures/rails50/config/boot.rb +3 -0
  25. data/spec/fixtures/rails50/config/cable.yml +9 -0
  26. data/spec/fixtures/rails50/config/environment.rb +5 -0
  27. data/spec/fixtures/rails50/config/environments/development.rb +44 -0
  28. data/spec/fixtures/rails50/config/environments/production.rb +75 -0
  29. data/spec/fixtures/rails50/config/environments/test.rb +42 -0
  30. data/spec/fixtures/rails50/config/initializers/application_controller_renderer.rb +6 -0
  31. data/spec/fixtures/rails50/config/initializers/backtrace_silencers.rb +7 -0
  32. data/spec/fixtures/rails50/config/initializers/cookies_serializer.rb +5 -0
  33. data/spec/fixtures/rails50/config/initializers/filter_parameter_logging.rb +4 -0
  34. data/spec/fixtures/rails50/config/initializers/inflections.rb +16 -0
  35. data/spec/fixtures/rails50/config/initializers/mime_types.rb +4 -0
  36. data/spec/fixtures/rails50/config/initializers/new_framework_defaults.rb +21 -0
  37. data/spec/fixtures/rails50/config/initializers/session_store.rb +3 -0
  38. data/spec/fixtures/rails50/config/initializers/wrap_parameters.rb +9 -0
  39. data/spec/fixtures/rails50/config/locales/en.yml +23 -0
  40. data/spec/fixtures/rails50/config/puma.rb +47 -0
  41. data/spec/fixtures/rails50/config/routes.rb +9 -0
  42. data/spec/fixtures/rails50/config/secrets.yml +23 -0
  43. data/spec/fixtures/rails50/public/404.html +67 -0
  44. data/spec/fixtures/rails50/public/422.html +67 -0
  45. data/spec/fixtures/rails50/public/500.html +66 -0
  46. data/spec/fixtures/rails50/public/apple-touch-icon-precomposed.png +0 -0
  47. data/spec/fixtures/rails50/public/apple-touch-icon.png +0 -0
  48. data/spec/fixtures/rails50/public/favicon.ico +0 -0
  49. data/spec/fixtures/rails50/public/robots.txt +5 -0
  50. data/spec/integration/rails/railtie_spec.rb +25 -0
  51. data/spec/integration/rails/request_spec.rb +23 -8
  52. data/spec/integration/sinatra_spec.rb +5 -0
  53. data/spec/support/request_spec.rb +5 -5
  54. data/spec/unit/loga/rack/request_spec.rb +48 -0
  55. metadata +79 -2
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-agent: *
5
+ # Disallow: /
@@ -60,5 +60,30 @@ RSpec.describe Loga::Railtie do
60
60
  end
61
61
  end
62
62
  end
63
+
64
+ context 'ActionController' do
65
+ [
66
+ 'exist_fragment?.action_controller',
67
+ 'expire_fragment.action_controller',
68
+ 'expire_page.action_controller',
69
+ 'halted_callback.action_controller',
70
+ 'logger.action_controller',
71
+ 'process_action.action_controller',
72
+ 'read_fragment.action_controller',
73
+ 'redirect_to.action_controller',
74
+ 'send_data.action_controller',
75
+ 'send_file.action_controller',
76
+ 'start_processing.action_controller',
77
+ 'unpermitted_parameters.action_controller',
78
+ 'write_fragment.action_controller',
79
+ 'write_page.action_controller',
80
+ ].each do |notification|
81
+ let(:notification) { notification }
82
+
83
+ it 'removes ActionController::LogSubscriber' do
84
+ expect(subscribers).to_not include(ActionController::LogSubscriber)
85
+ end
86
+ end
87
+ end
63
88
  end
64
89
  end
@@ -26,17 +26,32 @@ describe 'Integration with Rails', timecop: true do
26
26
  expect(json_response).to eq('action' => 'show', 'controller' => 'application')
27
27
  end
28
28
 
29
- context 'when a template is rendered' do
30
- let(:action_view_notifications) do
31
- json_entries.select { |e| e.to_json =~ /Rendered/ }
32
- end
29
+ it 'includes the controller name and action' do
30
+ get '/ok'
31
+ expect(json).to include('_request.controller' => 'ApplicationController#ok')
32
+ end
33
+
34
+ describe 'LogSubscriber' do
35
+ context 'ActionController' do
36
+ let(:action_controller_notifications) do
37
+ json_entries.select { |e| e.to_json =~ /Processing by|Completed/ }
38
+ end
33
39
 
34
- before { put '/users/5' }
40
+ it 'silences ActionController::LogSubscriber' do
41
+ get '/show'
42
+ expect(action_controller_notifications).to be_empty
43
+ end
44
+ end
35
45
 
36
- specify { expect(last_response.status).to eq(200) }
46
+ context 'ActionView' do
47
+ let(:action_view_notifications) do
48
+ json_entries.select { |e| e.to_json =~ /Rendered/ }
49
+ end
37
50
 
38
- it 'silences ActionView::LogSubscriber' do
39
- expect(action_view_notifications).to be_empty
51
+ it 'silences ActionView::LogSubscriber' do
52
+ put '/users/5'
53
+ expect(action_view_notifications).to be_empty
54
+ end
40
55
  end
41
56
  end
42
57
 
@@ -51,4 +51,9 @@ describe 'Rack request logger with Sinatra', timecop: true do
51
51
  end
52
52
 
53
53
  include_examples 'request logger'
54
+
55
+ it 'does not include the controller name and action' do
56
+ get '/ok'
57
+ expect(json).to_not include('_request.controller')
58
+ end
54
59
  end
@@ -5,7 +5,7 @@ RSpec.shared_examples 'request logger' do
5
5
  { username: 'yoshi' },
6
6
  'HTTP_USER_AGENT' => 'Chrome', 'HTTP_X_REQUEST_ID' => '471a34dc'
7
7
 
8
- expect(json).to match(
8
+ expect(json).to include(
9
9
  'version' => '1.1',
10
10
  'host' => 'bird.example.com',
11
11
  'short_message' => 'GET /ok?username=yoshi 200 in 0ms',
@@ -35,7 +35,7 @@ RSpec.shared_examples 'request logger' do
35
35
  { email: 'hello@world.com' },
36
36
  'HTTP_USER_AGENT' => 'Chrome', 'HTTP_X_REQUEST_ID' => '471a34dc'
37
37
 
38
- expect(json).to match(
38
+ expect(json).to include(
39
39
  'version' => '1.1',
40
40
  'host' => 'bird.example.com',
41
41
  'short_message' => 'POST /users?username=yoshi 200 in 0ms',
@@ -66,7 +66,7 @@ RSpec.shared_examples 'request logger' do
66
66
  it 'specifies the original path' do
67
67
  get '/new', {}, 'HTTP_USER_AGENT' => 'Chrome', 'HTTP_X_REQUEST_ID' => '471a34dc'
68
68
 
69
- expect(json).to match(
69
+ expect(json).to include(
70
70
  'version' => '1.1',
71
71
  'host' => 'bird.example.com',
72
72
  'short_message' => 'GET /new 302 in 0ms',
@@ -94,7 +94,7 @@ RSpec.shared_examples 'request logger' do
94
94
  { username: 'yoshi' },
95
95
  'HTTP_USER_AGENT' => 'Chrome', 'HTTP_X_REQUEST_ID' => '471a34dc'
96
96
 
97
- expect(json).to match(
97
+ expect(json).to include(
98
98
  'version' => '1.1',
99
99
  'host' => 'bird.example.com',
100
100
  'short_message' => 'GET /error?username=yoshi 500 in 0ms',
@@ -123,7 +123,7 @@ RSpec.shared_examples 'request logger' do
123
123
  it 'does not log the framework exception' do
124
124
  get '/not_found', {}, 'HTTP_X_REQUEST_ID' => '471a34dc'
125
125
 
126
- expect(json).to match(
126
+ expect(json).to include(
127
127
  'version' => '1.1',
128
128
  'host' => 'bird.example.com',
129
129
  'short_message' => 'GET /not_found 404 in 0ms',
@@ -5,6 +5,14 @@ describe Loga::Rack::Request do
5
5
  let(:full_path) { '/' }
6
6
  let(:env) { Rack::MockRequest.env_for(full_path, options) }
7
7
 
8
+ let(:action_controller_class) do
9
+ ApplicationController = Class.new do
10
+ def action_name
11
+ 'index'
12
+ end
13
+ end
14
+ end
15
+
8
16
  subject { described_class.new(env) }
9
17
 
10
18
  describe '#uuid' do
@@ -26,6 +34,46 @@ describe Loga::Rack::Request do
26
34
  end
27
35
  end
28
36
 
37
+ describe '#action_controller_instance' do
38
+ let(:action_controller_instance) { action_controller_class.new }
39
+
40
+ context 'when ACTION_CONTROLLER_INSTANCE is present' do
41
+ let(:options) do
42
+ { 'action_controller.instance' => action_controller_instance }
43
+ end
44
+ it 'returns the instance' do
45
+ expect(subject.action_controller_instance).to eq(action_controller_instance)
46
+ end
47
+ end
48
+
49
+ context 'when ACTION_DISPATCH_REQUEST_ID blank' do
50
+ it 'returns nil' do
51
+ expect(subject.action_controller_instance).to be_nil
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '#action_controller' do
57
+ let(:options) do
58
+ { 'action_controller.instance' => action_controller_class.new }
59
+ end
60
+
61
+ it 'returns the controller with the action_name' do
62
+ expect(subject.action_controller).to eq('ApplicationController#index')
63
+ end
64
+ end
65
+
66
+ describe '#request_id' do
67
+ let(:action_dispatch_request_id) { 'ABCD' }
68
+ let(:options) do
69
+ { 'action_dispatch.request_id' => action_dispatch_request_id }
70
+ end
71
+
72
+ it 'aliases to uuid' do
73
+ expect(subject.request_id).to eq(subject.uuid)
74
+ end
75
+ end
76
+
29
77
  describe '#original_path' do
30
78
  let(:path) { 'users/5/oranges' }
31
79
  let(:options) { { 'loga.request.original_path' => path } }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loga
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Funding Circle
@@ -169,14 +169,15 @@ files:
169
169
  - circle.yml
170
170
  - gemfiles/rails32.gemfile
171
171
  - gemfiles/rails40.gemfile
172
+ - gemfiles/rails50.gemfile
172
173
  - gemfiles/sinatra14.gemfile
173
174
  - gemfiles/unit.gemfile
174
175
  - lib/loga.rb
175
176
  - lib/loga/configuration.rb
176
177
  - lib/loga/event.rb
177
178
  - lib/loga/ext/rails/rack/debug_exceptions.rb
179
+ - lib/loga/ext/rails/rack/logger.rb
178
180
  - lib/loga/ext/rails/rack/logger3.rb
179
- - lib/loga/ext/rails/rack/logger4.rb
180
181
  - lib/loga/formatter.rb
181
182
  - lib/loga/parameter_filter.rb
182
183
  - lib/loga/rack/logger.rb
@@ -245,6 +246,44 @@ files:
245
246
  - spec/fixtures/rails40/public/500.html
246
247
  - spec/fixtures/rails40/public/favicon.ico
247
248
  - spec/fixtures/rails40/public/robots.txt
249
+ - spec/fixtures/rails50/Rakefile
250
+ - spec/fixtures/rails50/app/controllers/application_controller.rb
251
+ - spec/fixtures/rails50/app/helpers/application_helper.rb
252
+ - spec/fixtures/rails50/app/views/layouts/application.html.erb
253
+ - spec/fixtures/rails50/app/views/user.html.erb
254
+ - spec/fixtures/rails50/bin/bundle
255
+ - spec/fixtures/rails50/bin/rails
256
+ - spec/fixtures/rails50/bin/rake
257
+ - spec/fixtures/rails50/bin/setup
258
+ - spec/fixtures/rails50/bin/update
259
+ - spec/fixtures/rails50/config.ru
260
+ - spec/fixtures/rails50/config/application.rb
261
+ - spec/fixtures/rails50/config/boot.rb
262
+ - spec/fixtures/rails50/config/cable.yml
263
+ - spec/fixtures/rails50/config/environment.rb
264
+ - spec/fixtures/rails50/config/environments/development.rb
265
+ - spec/fixtures/rails50/config/environments/production.rb
266
+ - spec/fixtures/rails50/config/environments/test.rb
267
+ - spec/fixtures/rails50/config/initializers/application_controller_renderer.rb
268
+ - spec/fixtures/rails50/config/initializers/backtrace_silencers.rb
269
+ - spec/fixtures/rails50/config/initializers/cookies_serializer.rb
270
+ - spec/fixtures/rails50/config/initializers/filter_parameter_logging.rb
271
+ - spec/fixtures/rails50/config/initializers/inflections.rb
272
+ - spec/fixtures/rails50/config/initializers/mime_types.rb
273
+ - spec/fixtures/rails50/config/initializers/new_framework_defaults.rb
274
+ - spec/fixtures/rails50/config/initializers/session_store.rb
275
+ - spec/fixtures/rails50/config/initializers/wrap_parameters.rb
276
+ - spec/fixtures/rails50/config/locales/en.yml
277
+ - spec/fixtures/rails50/config/puma.rb
278
+ - spec/fixtures/rails50/config/routes.rb
279
+ - spec/fixtures/rails50/config/secrets.yml
280
+ - spec/fixtures/rails50/public/404.html
281
+ - spec/fixtures/rails50/public/422.html
282
+ - spec/fixtures/rails50/public/500.html
283
+ - spec/fixtures/rails50/public/apple-touch-icon-precomposed.png
284
+ - spec/fixtures/rails50/public/apple-touch-icon.png
285
+ - spec/fixtures/rails50/public/favicon.ico
286
+ - spec/fixtures/rails50/public/robots.txt
248
287
  - spec/integration/rails/railtie_spec.rb
249
288
  - spec/integration/rails/request_spec.rb
250
289
  - spec/integration/sinatra_spec.rb
@@ -342,6 +381,44 @@ test_files:
342
381
  - spec/fixtures/rails40/public/500.html
343
382
  - spec/fixtures/rails40/public/favicon.ico
344
383
  - spec/fixtures/rails40/public/robots.txt
384
+ - spec/fixtures/rails50/Rakefile
385
+ - spec/fixtures/rails50/app/controllers/application_controller.rb
386
+ - spec/fixtures/rails50/app/helpers/application_helper.rb
387
+ - spec/fixtures/rails50/app/views/layouts/application.html.erb
388
+ - spec/fixtures/rails50/app/views/user.html.erb
389
+ - spec/fixtures/rails50/bin/bundle
390
+ - spec/fixtures/rails50/bin/rails
391
+ - spec/fixtures/rails50/bin/rake
392
+ - spec/fixtures/rails50/bin/setup
393
+ - spec/fixtures/rails50/bin/update
394
+ - spec/fixtures/rails50/config.ru
395
+ - spec/fixtures/rails50/config/application.rb
396
+ - spec/fixtures/rails50/config/boot.rb
397
+ - spec/fixtures/rails50/config/cable.yml
398
+ - spec/fixtures/rails50/config/environment.rb
399
+ - spec/fixtures/rails50/config/environments/development.rb
400
+ - spec/fixtures/rails50/config/environments/production.rb
401
+ - spec/fixtures/rails50/config/environments/test.rb
402
+ - spec/fixtures/rails50/config/initializers/application_controller_renderer.rb
403
+ - spec/fixtures/rails50/config/initializers/backtrace_silencers.rb
404
+ - spec/fixtures/rails50/config/initializers/cookies_serializer.rb
405
+ - spec/fixtures/rails50/config/initializers/filter_parameter_logging.rb
406
+ - spec/fixtures/rails50/config/initializers/inflections.rb
407
+ - spec/fixtures/rails50/config/initializers/mime_types.rb
408
+ - spec/fixtures/rails50/config/initializers/new_framework_defaults.rb
409
+ - spec/fixtures/rails50/config/initializers/session_store.rb
410
+ - spec/fixtures/rails50/config/initializers/wrap_parameters.rb
411
+ - spec/fixtures/rails50/config/locales/en.yml
412
+ - spec/fixtures/rails50/config/puma.rb
413
+ - spec/fixtures/rails50/config/routes.rb
414
+ - spec/fixtures/rails50/config/secrets.yml
415
+ - spec/fixtures/rails50/public/404.html
416
+ - spec/fixtures/rails50/public/422.html
417
+ - spec/fixtures/rails50/public/500.html
418
+ - spec/fixtures/rails50/public/apple-touch-icon-precomposed.png
419
+ - spec/fixtures/rails50/public/apple-touch-icon.png
420
+ - spec/fixtures/rails50/public/favicon.ico
421
+ - spec/fixtures/rails50/public/robots.txt
345
422
  - spec/integration/rails/railtie_spec.rb
346
423
  - spec/integration/rails/request_spec.rb
347
424
  - spec/integration/sinatra_spec.rb