time_bandits 0.10.11 → 0.12.2

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +16 -4
  3. data/Appraisals +2 -10
  4. data/LICENSE.txt +20 -0
  5. data/README.md +25 -27
  6. data/Rakefile +1 -0
  7. data/docker-compose.yml +4 -4
  8. data/gemfiles/activesupport_5.2.4.3.gemfile +8 -0
  9. data/gemfiles/activesupport_5.2.4.3.gemfile.lock +81 -0
  10. data/gemfiles/activesupport_6.0.3.2.gemfile +8 -0
  11. data/gemfiles/activesupport_6.0.3.2.gemfile.lock +81 -0
  12. data/lib/time_bandits.rb +2 -6
  13. data/lib/time_bandits/monkey_patches/action_controller.rb +0 -79
  14. data/lib/time_bandits/monkey_patches/active_record.rb +18 -98
  15. data/lib/time_bandits/rack/logger.rb +46 -19
  16. data/lib/time_bandits/railtie.rb +6 -8
  17. data/lib/time_bandits/time_consumers/dalli.rb +0 -12
  18. data/lib/time_bandits/time_consumers/garbage_collection.rb +5 -29
  19. data/lib/time_bandits/version.rb +1 -1
  20. data/test/test_helper.rb +2 -10
  21. data/test/unit/gc_consumer_test.rb +2 -3
  22. data/test/unit/sequel_test.rb +5 -1
  23. data/time_bandits.gemspec +6 -3
  24. metadata +21 -37
  25. data/gemfiles/activesupport_4.1.16.gemfile +0 -8
  26. data/gemfiles/activesupport_4.1.16.gemfile.lock +0 -91
  27. data/gemfiles/activesupport_4.2.8.gemfile +0 -8
  28. data/gemfiles/activesupport_4.2.8.gemfile.lock +0 -89
  29. data/gemfiles/activesupport_4.2.9.gemfile +0 -8
  30. data/gemfiles/activesupport_4.2.9.gemfile.lock +0 -89
  31. data/gemfiles/activesupport_5.0.3.gemfile +0 -8
  32. data/gemfiles/activesupport_5.0.3.gemfile.lock +0 -88
  33. data/gemfiles/activesupport_5.0.4.gemfile +0 -8
  34. data/gemfiles/activesupport_5.0.4.gemfile.lock +0 -88
  35. data/gemfiles/activesupport_5.1.1.gemfile +0 -8
  36. data/gemfiles/activesupport_5.1.1.gemfile.lock +0 -88
  37. data/gemfiles/activesupport_5.1.2.gemfile +0 -8
  38. data/gemfiles/activesupport_5.1.2.gemfile.lock +0 -88
  39. data/gemfiles/activesupport_5.1.5.gemfile +0 -8
  40. data/gemfiles/activesupport_5.1.5.gemfile.lock +0 -85
  41. data/gemfiles/activesupport_5.2.0.gemfile +0 -8
  42. data/gemfiles/activesupport_5.2.0.gemfile.lock +0 -85
  43. data/lib/time_bandits/monkey_patches/active_support_cache_store.rb +0 -18
  44. data/lib/time_bandits/rack/logger40.rb +0 -94
  45. data/rails/init.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8447b013b4ab90d594ca245cb69c3c2bbda8e8222bccddcd8780f8c1434893ad
4
- data.tar.gz: a29d3e3afd51d36d464f503211551af24be3f239dacc4e5dcb8fc2752aed0939
3
+ metadata.gz: b13f621d06b0868cde0ad832603e9a924f4d40ad03a63ded4d98f13e6d5feccd
4
+ data.tar.gz: 674bfa4c6564f06ee6946d54290e38e0bfe05c2af4acced51f0aac1f8fc182ac
5
5
  SHA512:
6
- metadata.gz: afa8037541dc31446f75fc89c437c8a70b785126c1162d38b865fbe94ecebf399c00eaaafa73802c88e612b0b164dc5af3e15ffd8582342f1d523bd8ecd6f92d
7
- data.tar.gz: 139d9563ca52d1f45cf00f582a5c25d7778e6da98fc9dce93fbcf99b6355915fe76ef96805935081d613af747464ac4262e3228099a88c6a8226f60a39d188c4
6
+ metadata.gz: a86246746fc6a6465e8b4a4ac1a87001ec815b4bfaa2dae2107edc7e21dc8440a22a5a33625b5dd908ecf408d7c060bc02828b00080f4f209de8b962ad39ae0d
7
+ data.tar.gz: 046dab1c28efe9c237a87eb7bfc25c1867cd1632c8f2c9b27ff06191845a46f90cea496289466ce5e36e45da195238fe5e3348025b3cf511200d20479267a8d8
@@ -1,11 +1,23 @@
1
+ dist: bionic
1
2
  language: ruby
2
3
  rvm:
3
- - 2.3.6
4
- - 2.4.3
5
- - 2.5.0
4
+ - 2.5.7
5
+ - 2.6.5
6
+ - 2.7.0
7
+ before_install:
8
+ - gem install bundler
6
9
  script: "bundle exec rake appraisal:test"
7
- sudo: false
8
10
  services:
9
11
  - redis-server
10
12
  - memcached
11
13
  - rabbitmq
14
+ - mysql
15
+ addons:
16
+ apt:
17
+ sources:
18
+ - sourceline: "deb https://packages.erlang-solutions.com/ubuntu bionic contrib"
19
+ key_url: "https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc"
20
+ - sourceline: "deb https://dl.bintray.com/rabbitmq/debian bionic main"
21
+ key_url: "https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc"
22
+ packages:
23
+ - rabbitmq-server
data/Appraisals CHANGED
@@ -1,15 +1,7 @@
1
1
  [
2
- "4.1.16",
3
- "4.2.8",
4
- "4.2.9",
5
- "5.0.3",
6
- "5.0.4",
7
- "5.1.1",
8
- "5.1.2",
9
- "5.1.5",
10
- "5.2.0",
2
+ "5.2.4.3",
3
+ "6.0.3.2"
11
4
  ].each do |rails_version|
12
- next if RUBY_VERSION >= "2.4.0" && rails_version < "4.2.8"
13
5
  appraise "activesupport-#{rails_version}" do
14
6
  gem "activesupport", rails_version
15
7
  gem "activerecord", rails_version
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009-2020 Stefan Kaes <skaes@railsexpress.de>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  Time Bandits is a gem plugin for Rails which enhances Rails' controller/view/db benchmark logging.
6
6
 
7
+ [![Travis](https://travis-ci.org/skaes/time_bandits.svg?branch=master)](https://travis-ci.org/github/skaes/time_bandits)
8
+
7
9
  ## Usage
8
10
 
9
11
  Without configuration, the standard Rails 'Completed line' will change
@@ -53,16 +55,16 @@ With these two new time consumers, the log line changes to
53
55
  b: number of bytes allocated by the ruby x_malloc call (#bytes)
54
56
  l: live data set size after last GC (#slots)
55
57
 
56
- Sidenote for Germans: you can use the word "Gesabbel" (eng: drivel) as a mnemonic here ;-)
58
+ Side note for speakers of German: you can use the word "Gesabbel" (eng: drivel) as a mnemonic here ;-)
57
59
 
58
- It's realtively straightforward to write additional time consumers; the more difficult part of this is
60
+ It's relatively straightforward to write additional time consumers; the more difficult part of this is
59
61
  monkey patching the code which you want to instrument. Have a look at consumers under
60
- lib/time_bandits/time_consumers and the corresponding patches under lib/time_bandits/monkey_patches.
62
+ `lib/time_bandits/time_consumers` and the corresponding patches under `lib/time_bandits/monkey_patches`.
61
63
 
62
64
 
63
65
  ## Prerequisites
64
66
 
65
- Rails >= 3.x is required. The gem will raise an error if you try to use it with an incompatible
67
+ ActiveSupport/Rails >= 5.2 is required. The gem will raise an error if you try to use it with an incompatible
66
68
  version.
67
69
 
68
70
  You'll need a ruby with the railsexpress GC patches applied, if you want to include GC and heap size
@@ -80,10 +82,28 @@ changed so much of the code that is is practically a full rewrite, hence we chan
80
82
 
81
83
  ## Running Tests
82
84
 
83
- In order for the test to run you need a running memcached, redis-server and mysql
85
+ Run `docker-compose up` to start Redis, MySQL, RabbitMQ and Memached containers, then run `rake`.
86
+
84
87
 
85
88
  ## Release Notes
86
89
 
90
+ ## Version 0.12.2
91
+ - fixed that completed line was logged twice in Rails test environment
92
+
93
+ ## Version 0.12.1
94
+ - support having the rails gem in a bundle without activating the time bandits railtie
95
+ - automatically install the garbage collection time bandit in rails applications
96
+
97
+ ## Version 0.12.0
98
+ - drops support for Rails versions before 5.2.0 and Ruby versions before 2.2.0
99
+ - makes it possible to use individual time bandits without Rails (e.g. in a Sinatra app)
100
+
101
+ ## Version 0.11.0
102
+ - supports rails 6.0.0
103
+
104
+ ## Version 0.10.12
105
+ - supports rails 5.0.7
106
+
87
107
  ## Version 0.10.11
88
108
  - support rails 5.2.0
89
109
 
@@ -170,26 +190,4 @@ In order for the test to run you need a running memcached, redis-server and mysq
170
190
  - times are all measured in milliseconds internally
171
191
  - added class TimeBandits::TimeConsumers::BaseConsumer to simplify writing custom consumers
172
192
 
173
- ## License
174
-
175
- Copyright (c) 2009-2014 Stefan Kaes <skaes@railsexpress.de>
176
-
177
- Permission is hereby granted, free of charge, to any person obtaining
178
- a copy of this software and associated documentation files (the
179
- "Software"), to deal in the Software without restriction, including
180
- without limitation the rights to use, copy, modify, merge, publish,
181
- distribute, sublicense, and/or sell copies of the Software, and to
182
- permit persons to whom the Software is furnished to do so, subject to
183
- the following conditions:
184
-
185
- The above copyright notice and this permission notice shall be
186
- included in all copies or substantial portions of the Software.
187
-
188
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
189
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
190
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
191
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
192
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
193
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
194
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
195
193
 
data/Rakefile CHANGED
@@ -13,6 +13,7 @@ Rake::TestTask.new do |t|
13
13
  t.libs << "test"
14
14
  t.test_files = FileList['test/**/*_test.rb']
15
15
  t.verbose = true
16
+ t.ruby_opts = %w(-W0)
16
17
  end
17
18
 
18
19
  namespace :appraisal do
@@ -3,7 +3,7 @@ version: '2'
3
3
  services:
4
4
  mysql:
5
5
  container_name: mysql
6
- image: mysql:5.5
6
+ image: mysql:5.7
7
7
  ports:
8
8
  - "3601:3306"
9
9
  environment:
@@ -11,18 +11,18 @@ services:
11
11
 
12
12
  memcached:
13
13
  container_name: memcached
14
- image: memcached:1.4.27
14
+ image: memcached:1.6.6
15
15
  ports:
16
16
  - "11211:11211"
17
17
 
18
18
  redis:
19
19
  container_name: redis
20
- image: redis:3.2.0
20
+ image: redis:5.0.9
21
21
  ports:
22
22
  - "6379:6379"
23
23
 
24
24
  rabbitmq:
25
25
  container_name: rabbitmq
26
- image: rabbitmq:3.6.2
26
+ image: rabbitmq:3.8.5
27
27
  ports:
28
28
  - "5672:5672"
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activesupport", "5.2.4.3"
6
+ gem "activerecord", "5.2.4.3"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,81 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ time_bandits (0.11.0)
5
+ activesupport (>= 5.2.4.3)
6
+ thread_variables
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ activemodel (5.2.4.3)
12
+ activesupport (= 5.2.4.3)
13
+ activerecord (5.2.4.3)
14
+ activemodel (= 5.2.4.3)
15
+ activesupport (= 5.2.4.3)
16
+ arel (>= 9.0)
17
+ activesupport (5.2.4.3)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 0.7, < 2)
20
+ minitest (~> 5.1)
21
+ tzinfo (~> 1.1)
22
+ amq-protocol (2.3.1)
23
+ amqp (1.8.0)
24
+ amq-protocol (>= 2.2.0)
25
+ eventmachine
26
+ ansi (1.5.0)
27
+ appraisal (2.3.0)
28
+ bundler
29
+ rake
30
+ thor (>= 0.14.0)
31
+ arel (9.0.0)
32
+ beetle (3.4.1)
33
+ activesupport (>= 2.3.4)
34
+ amq-protocol (= 2.3.1)
35
+ amqp (= 1.8.0)
36
+ bunny (~> 0.7.12)
37
+ hiredis (>= 0.4.5)
38
+ redis (>= 4.2.1)
39
+ bunny (0.7.12)
40
+ byebug (11.1.3)
41
+ concurrent-ruby (1.1.6)
42
+ dalli (2.7.10)
43
+ eventmachine (1.2.7)
44
+ hiredis (0.6.3)
45
+ i18n (1.8.3)
46
+ concurrent-ruby (~> 1.0)
47
+ memcached (1.8.0)
48
+ minitest (5.14.1)
49
+ mocha (1.11.2)
50
+ mysql2 (0.5.3)
51
+ rake (13.0.1)
52
+ redis (4.2.1)
53
+ sequel (5.33.0)
54
+ thor (1.0.1)
55
+ thread_safe (0.3.6)
56
+ thread_variables (0.2.0)
57
+ tzinfo (1.2.7)
58
+ thread_safe (~> 0.1)
59
+
60
+ PLATFORMS
61
+ ruby
62
+
63
+ DEPENDENCIES
64
+ activerecord (= 5.2.4.3)
65
+ activesupport (= 5.2.4.3)
66
+ ansi
67
+ appraisal
68
+ beetle (>= 3.4.1)
69
+ byebug
70
+ dalli
71
+ memcached (~> 1.8.0)
72
+ minitest (~> 5.5)
73
+ mocha
74
+ mysql2
75
+ rake
76
+ redis
77
+ sequel
78
+ time_bandits!
79
+
80
+ BUNDLED WITH
81
+ 2.1.4
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activesupport", "6.0.3.2"
6
+ gem "activerecord", "6.0.3.2"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,81 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ time_bandits (0.11.0)
5
+ activesupport (>= 5.2.4.3)
6
+ thread_variables
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ activemodel (6.0.3.2)
12
+ activesupport (= 6.0.3.2)
13
+ activerecord (6.0.3.2)
14
+ activemodel (= 6.0.3.2)
15
+ activesupport (= 6.0.3.2)
16
+ activesupport (6.0.3.2)
17
+ concurrent-ruby (~> 1.0, >= 1.0.2)
18
+ i18n (>= 0.7, < 2)
19
+ minitest (~> 5.1)
20
+ tzinfo (~> 1.1)
21
+ zeitwerk (~> 2.2, >= 2.2.2)
22
+ amq-protocol (2.3.1)
23
+ amqp (1.8.0)
24
+ amq-protocol (>= 2.2.0)
25
+ eventmachine
26
+ ansi (1.5.0)
27
+ appraisal (2.3.0)
28
+ bundler
29
+ rake
30
+ thor (>= 0.14.0)
31
+ beetle (3.4.1)
32
+ activesupport (>= 2.3.4)
33
+ amq-protocol (= 2.3.1)
34
+ amqp (= 1.8.0)
35
+ bunny (~> 0.7.12)
36
+ hiredis (>= 0.4.5)
37
+ redis (>= 4.2.1)
38
+ bunny (0.7.12)
39
+ byebug (11.1.3)
40
+ concurrent-ruby (1.1.6)
41
+ dalli (2.7.10)
42
+ eventmachine (1.2.7)
43
+ hiredis (0.6.3)
44
+ i18n (1.8.3)
45
+ concurrent-ruby (~> 1.0)
46
+ memcached (1.8.0)
47
+ minitest (5.14.1)
48
+ mocha (1.11.2)
49
+ mysql2 (0.5.3)
50
+ rake (13.0.1)
51
+ redis (4.2.1)
52
+ sequel (5.33.0)
53
+ thor (1.0.1)
54
+ thread_safe (0.3.6)
55
+ thread_variables (0.2.0)
56
+ tzinfo (1.2.7)
57
+ thread_safe (~> 0.1)
58
+ zeitwerk (2.3.0)
59
+
60
+ PLATFORMS
61
+ ruby
62
+
63
+ DEPENDENCIES
64
+ activerecord (= 6.0.3.2)
65
+ activesupport (= 6.0.3.2)
66
+ ansi
67
+ appraisal
68
+ beetle (>= 3.4.1)
69
+ byebug
70
+ dalli
71
+ memcached (~> 1.8.0)
72
+ minitest (~> 5.5)
73
+ mocha
74
+ mysql2
75
+ rake
76
+ redis
77
+ sequel
78
+ time_bandits!
79
+
80
+ BUNDLED WITH
81
+ 2.1.4
@@ -5,11 +5,7 @@ require 'thread_variables'
5
5
  module TimeBandits
6
6
 
7
7
  module TimeConsumers
8
- if defined?(Rails) && Rails::VERSION::STRING < "3.0"
9
- autoload :Database, 'time_bandits/time_consumers/database_rails2'
10
- else
11
- autoload :Database, 'time_bandits/time_consumers/database'
12
- end
8
+ autoload :Database, 'time_bandits/time_consumers/database'
13
9
  autoload :GarbageCollection, 'time_bandits/time_consumers/garbage_collection'
14
10
  autoload :JMX, 'time_bandits/time_consumers/jmx'
15
11
  autoload :MemCache, 'time_bandits/time_consumers/mem_cache'
@@ -20,7 +16,7 @@ module TimeBandits
20
16
  autoload :Beetle, 'time_bandits/time_consumers/beetle'
21
17
  end
22
18
 
23
- require 'time_bandits/railtie' if defined?(Rails) && Rails::VERSION::STRING >= "3.0"
19
+ require 'time_bandits/railtie' if defined?(Rails::Railtie)
24
20
  require 'time_bandits/time_consumers/base_consumer'
25
21
 
26
22
  mattr_accessor :time_bandits
@@ -4,45 +4,6 @@ module ActionController #:nodoc:
4
4
 
5
5
  module Instrumentation
6
6
 
7
- # patch to ensure that the completed line is always written to the log.
8
- # this is not necessary anymore with Rails 4 and higher.
9
- def process_action(action, *args)
10
- raw_payload = get_raw_payload
11
- ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
12
-
13
- exception = nil
14
- result = ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
15
- begin
16
- super
17
- rescue Exception => exception
18
- response.status = 500
19
- nil
20
- ensure
21
- payload[:status] = response.status
22
- append_info_to_payload(payload)
23
- end
24
- end
25
- raise exception if exception
26
- result
27
- end unless Rails::VERSION::STRING >= "4.0"
28
-
29
- # patch to ensure that render times are always recorded in the log.
30
- # this is not necessary anymore with Rails 3 and up.
31
- def render(*args)
32
- render_output = nil
33
- exception = nil
34
- self.view_runtime = cleanup_view_runtime do
35
- Benchmark.ms do
36
- begin
37
- render_output = super
38
- rescue Exception => exception
39
- end
40
- end
41
- end
42
- raise exception if exception
43
- render_output
44
- end unless Rails::VERSION::STRING >= "3.0"
45
-
46
7
  def cleanup_view_runtime #:nodoc:
47
8
  consumed_before_rendering = TimeBandits.consumed
48
9
  runtime = yield
@@ -52,32 +13,6 @@ module ActionController #:nodoc:
52
13
 
53
14
  private
54
15
 
55
- if Rails::VERSION::STRING =~ /\A3\.[01]/
56
- def get_raw_payload
57
- {
58
- :controller => self.class.name,
59
- :action => self.action_name,
60
- :params => request.filtered_parameters,
61
- :formats => request.formats.map(&:to_sym),
62
- :method => request.method,
63
- :path => (request.fullpath rescue "unknown")
64
- }
65
- end
66
- elsif Rails::VERSION::STRING =~ /\A3\.2/
67
- def get_raw_payload
68
- {
69
- :controller => self.class.name,
70
- :action => self.action_name,
71
- :params => request.filtered_parameters,
72
- :format => request.format.try(:ref),
73
- :method => request.method,
74
- :path => (request.fullpath rescue "unknown")
75
- }
76
- end
77
- elsif Rails::VERSION::STRING < "3"
78
- raise "time_bandits ActionController monkey patch is not compatible with your Rails version"
79
- end
80
-
81
16
  module ClassMethods
82
17
  # patch to log rendering time with more precision
83
18
  def log_process_action(payload) #:nodoc:
@@ -101,20 +36,6 @@ module ActionController #:nodoc:
101
36
  :time_bandits_completed_info,
102
37
  [ event.duration, additions, payload[:view_runtime], "#{payload[:controller]}##{payload[:action]}" ]
103
38
  )
104
-
105
- # this is an ugly hack to ensure completed lines show up in the test logs
106
- # TODO: move this code to some other place
107
- return unless Rails.env.test? && Rails::VERSION::STRING >= "3.2"
108
-
109
- status = payload[:status]
110
- if status.nil? && payload[:exception].present?
111
- exception_class_name = payload[:exception].first
112
- status = ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name)
113
- end
114
- message = "Completed #{status} #{Rack::Utils::HTTP_STATUS_CODES[status]} in %.1fms" % event.duration
115
- message << " (#{additions.join(" | ")})" unless additions.blank?
116
-
117
- info(message)
118
39
  end
119
40
  end
120
41