-
Notifications
You must be signed in to change notification settings - Fork 30
/
extension.rb
33 lines (28 loc) · 964 Bytes
/
extension.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true
require 'lograge/active_record_log_subscriber'
module Lograge
module Sql
# Module used to extend Lograge
module Extension
# Overrides `Lograge::RequestLogSubscriber#extract_request` do add SQL queries
def extract_request(event, payload)
super.merge!(extract_sql_queries)
end
# Collects all SQL queries stored in the Thread during request processing
def extract_sql_queries
sql_queries = Lograge::Sql.store[:lograge_sql_queries]
return {} unless sql_queries
Lograge::Sql.store[:lograge_sql_queries] = nil
{
sql_queries: Lograge::Sql.formatter.call(sql_queries),
sql_queries_count: sql_queries.length
}
end
end
end
end
if defined?(Lograge::RequestLogSubscriber)
Lograge::RequestLogSubscriber.prepend Lograge::Sql::Extension
else
Lograge::LogSubscribers::ActionController.prepend Lograge::Sql::Extension
end