lograge-sql 2.4.0 → 2.5.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4741be36b981948cc0562664564b910b3bf0ed6bb02a0f39e0af3798bc66f5b6
4
- data.tar.gz: 92d89a6ddae169b32be1b2512dcbc8fd06843891cc464873899c464be761efb5
3
+ metadata.gz: 411c0c5825eb7d03f50656e01258c6e1f496b714e52fb5accdf688fd83ad2dc8
4
+ data.tar.gz: 216a5da3c96a4e968242b67da4c1d049519ad04481282a3455d587927075fe6a
5
5
  SHA512:
6
- metadata.gz: 14c80d0b256734c869b82f6652afebc1f3e1b64e465c1c4e49b7dfe1407ebe28771b070abde47a4b7a14e85a082e3e5c47d88c867ae064bedda2b83f150d2eb8
7
- data.tar.gz: 40176ec3866decded7e8801b41a5521abe466f5d52858d5040e70b341e7132412377c1fa6d6d12859dcbc28594e7ddad3037bdee747747ac8b98409e70c038a1
6
+ metadata.gz: d1f070808821acc5193c216f1586cb41eda7dc7a411446d1fab0f29bb6948672e704a7112f5658b504386f476e5a08ae7797415f01fdf260188bb5c83aeb31c3
7
+ data.tar.gz: 3df2ef7fbc138431e8e43963f0a1ba9ca39af1165447f5dfd93c1cdf1b6a4fd84da9da9255de0ad37bc92cd1b7d6199d59c393bbfc6aa6138453336c3d72a66f
data/README.md CHANGED
@@ -45,6 +45,20 @@ Rails.application.configure do
45
45
  end
46
46
  ```
47
47
 
48
+ ### Filtering sql queries by name
49
+
50
+ You can filter out queries using the `query_name_denylist` configuration.
51
+ This takes an array of regular expressions to match against the query name. If the query name matches any of the regular expressions, it will be ignored. By default, `lograge-sql` ignores queries named `SCHEMA` and queries from the `SolidCable` namespace.
52
+ If you are using Solid Cable in your project, be careful when removing this default value as it will cause a [memory leak](https://github.com/iMacTia/lograge-sql/issues/59).
53
+
54
+ ```ruby
55
+ # config/initializers/lograge.rb
56
+ Rails.application.configure do
57
+ # Defaults is [/\ASCHEMA\z/, /\ASolidCable::/]
58
+ config.lograge_sql.query_name_denylist << /\AEXACT NAME TO IGNORE\z/
59
+ end
60
+ ```
61
+
48
62
  ### Output Customization
49
63
 
50
64
  By default, the format is a string concatenation of the query name, the query duration and the query itself joined by `\n` newline:
@@ -33,7 +33,7 @@ module Lograge
33
33
  end
34
34
 
35
35
  def valid?(event)
36
- return false if event.payload[:name] == 'SCHEMA'
36
+ return false if event.payload[:name]&.match?(Lograge::Sql.query_name_denylist)
37
37
 
38
38
  # Only store SQL events if `event.duration` is greater than the configured +min_duration+
39
39
  # No need to check if +min_duration+ is present before as it defaults to 0
@@ -3,6 +3,6 @@
3
3
  module Lograge
4
4
  module Sql
5
5
  # Gem version
6
- VERSION = '2.4.0'
6
+ VERSION = '2.5.1'
7
7
  end
8
8
  end
data/lib/lograge/sql.rb CHANGED
@@ -15,13 +15,16 @@ module Lograge
15
15
  attr_accessor :min_duration_ms
16
16
  # Filter SQL query
17
17
  attr_accessor :query_filter
18
+ # Filter wich SQL queries to store
19
+ attr_accessor :query_name_denylist
18
20
 
19
21
  # Initialise configuration with fallback to default values
20
- def setup(config)
22
+ def setup(config) # rubocop:disable Metrics/AbcSize
21
23
  Lograge::Sql.formatter = config.formatter || default_formatter
22
24
  Lograge::Sql.extract_event = config.extract_event || default_extract_event
23
25
  Lograge::Sql.min_duration_ms = config.min_duration_ms || 0
24
26
  Lograge::Sql.query_filter = config.query_filter
27
+ Lograge::Sql.query_name_denylist = Regexp.union(config.query_name_denylist || [/\ASCHEMA\z/, /\ASolidCable::/])
25
28
 
26
29
  # Disable existing ActiveRecord logging
27
30
  unsubscribe_log_subscribers unless config.keep_default_active_record_log
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lograge-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Giuffrida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-29 00:00:00.000000000 Z
11
+ date: 2024-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.3'
22
+ version: '8.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.3'
32
+ version: '8.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: lograge
35
35
  requirement: !ruby/object:Gem::Requirement