Skip to content

Commit 9e2c0f9

Browse files
authored
Merge pull request #248 from jdelStrother/async-logs
Include async:true on async queries
2 parents 9c6a330 + 6348e2f commit 9e2c0f9

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

lib/rails_semantic_logger/active_record/log_subscriber.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def sql(event)
3333
log_payload[:binds] = bind_values(payload) unless (payload[:binds] || []).empty?
3434
log_payload[:allocations] = event.allocations if event.respond_to?(:allocations)
3535
log_payload[:cached] = event.payload[:cached]
36+
log_payload[:async] = true if event.payload[:async]
3637

3738
log = {
3839
message: name,

test/active_record_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,30 @@ class ActiveRecordTest < Minitest::Test
187187
}
188188
)
189189
end
190+
191+
it "marks async queries with async: true" do
192+
skip "Not applicable to older rails" if Rails.version.to_f < 7.1
193+
194+
expected_sql = 'SELECT COUNT(*) FROM "samples"'
195+
196+
messages = semantic_logger_events do
197+
Sample.count
198+
Sample.async_count.value
199+
end
200+
assert_equal 2, messages.count, messages
201+
202+
messages.each do |message|
203+
assert_semantic_logger_event(
204+
message,
205+
level: :debug,
206+
name: "ActiveRecord",
207+
message: "Sample Count",
208+
payload_includes: {sql: expected_sql}
209+
)
210+
end
211+
refute messages[0].payload.key?(:async)
212+
assert_equal true, messages[1].payload[:async]
213+
end
190214
end
191215
end
192216
end

test/dummy/config/application.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class Application < Rails::Application
1111
# Configure sensitive parameters which will be filtered from the log file.
1212
config.filter_parameters += [:password]
1313
config.active_record.sqlite3.represent_boolean_as_integer = true if config.active_record.sqlite3
14+
config.active_record.async_query_executor = :global_thread_pool
1415

1516
# Settings in config/environments/* take precedence over those specified here.
1617
# Application configuration should go into files in config/initializers

0 commit comments

Comments
 (0)