Skip to content

Commit 58c99c4

Browse files
authored
Merge pull request reidmorrison#115 from zach-taylor/log-allocations
Adds allocations to the payload for controller, view, and sql logs
2 parents c3b9066 + 014f01b commit 58c99c4

File tree

5 files changed

+9
-0
lines changed

5 files changed

+9
-0
lines changed

lib/rails_semantic_logger/action_controller/log_subscriber.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ def process_action(event)
3737
payload[key] = payload[key].to_f.round(2) if key.to_s =~ /(.*)_runtime/
3838
end
3939

40+
# Rails 6+ includes allocation count
41+
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
42+
4043
payload[:status_message] = ::Rack::Utils::HTTP_STATUS_CODES[payload[:status]] if payload[:status].present?
4144

4245
# Causes excessive log output with Rails 5 RC1

lib/rails_semantic_logger/action_view/log_subscriber.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def render_template(event)
2323
template: from_rails_root(event.payload[:identifier])
2424
}
2525
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
26+
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
2627

2728
logger.measure(
2829
self.class.rendered_log_level,
@@ -40,6 +41,7 @@ def render_partial(event)
4041
}
4142
payload[:within] = from_rails_root(event.payload[:layout]) if event.payload[:layout]
4243
payload[:cache] = payload[:cache_hit] unless event.payload[:cache_hit].nil?
44+
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
4345

4446
logger.measure(
4547
self.class.rendered_log_level,
@@ -59,6 +61,7 @@ def render_collection(event)
5961
count: event.payload[:count]
6062
}
6163
payload[:cache_hits] = payload[:cache_hits] if payload[:cache_hits]
64+
payload[:allocations] = event.allocations if event.respond_to?(:allocations)
6265

6366
logger.measure(
6467
self.class.rendered_log_level,

lib/rails_semantic_logger/active_record/log_subscriber.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def sql(event)
3131

3232
log_payload = {sql: payload[:sql]}
3333
log_payload[:binds] = bind_values(payload) unless (payload[:binds] || []).empty?
34+
log_payload[:allocations] = event.allocations if event.respond_to?(:allocations)
3435

3536
log = {
3637
message: name,

test/active_record_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class ActiveRecordTest < Minitest::Test
2828
assert actual[:message].include?("Sample"), actual[:message]
2929
assert actual[:payload], actual
3030
assert actual[:payload][:sql], actual[:payload]
31+
assert_instance_of Integer, actual[:payload][:allocations] if Rails.version.to_i >= 6
3132
end
3233

3334
it "sql with query cache" do

test/controllers/articles_controller_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,6 @@ def params
6161
assert_equal "OK", payload[:status_message], payload
6262
assert (payload[:view_runtime] >= 0.0), payload
6363
assert((payload[:db_runtime] >= 0.0), payload) unless defined?(JRuby)
64+
assert_instance_of Integer, payload[:allocations] if Rails.version.to_i >= 6
6465
end
6566
end

0 commit comments

Comments
 (0)