Skip to content

Commit e004d1d

Browse files
committed
feat: add configurable Ecto query log level
Add centralized log level configuration for Ecto queries following Oban's wrapper pattern. This eliminates excessive debug-level SQL query logs by default. - Add `log_level` config option (default: false, disables query logging) - Create `Durable.Repo` wrapper module that applies log level to all queries - Update all direct repo calls to use the wrapper Usage: # Default: query logging disabled {Durable, repo: MyApp.Repo} # Enable debug logging for troubleshooting {Durable, repo: MyApp.Repo, log_level: :debug}
1 parent 11c3d06 commit e004d1d

10 files changed

Lines changed: 432 additions & 319 deletions

File tree

lib/durable/config.ex

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ defmodule Durable.Config do
1414
* `:queue_enabled` - Enable/disable queue processing (default: `true`)
1515
* `:stale_lock_timeout` - Seconds before a lock is considered stale (default: `300`)
1616
* `:heartbeat_interval` - Milliseconds between worker heartbeats (default: `30_000`)
17+
* `:log_level` - Log level for Ecto queries, or `false` to disable (default: `false`)
1718
1819
## Examples
1920
@@ -43,7 +44,8 @@ defmodule Durable.Config do
4344
stale_lock_timeout: pos_integer(),
4445
heartbeat_interval: pos_integer(),
4546
scheduled_modules: [module()],
46-
scheduler_interval: pos_integer()
47+
scheduler_interval: pos_integer(),
48+
log_level: false | :debug | :info | :warning | :error
4749
}
4850

4951
defstruct [
@@ -55,7 +57,8 @@ defmodule Durable.Config do
5557
:stale_lock_timeout,
5658
:heartbeat_interval,
5759
:scheduled_modules,
58-
:scheduler_interval
60+
:scheduler_interval,
61+
:log_level
5962
]
6063

6164
@schema [
@@ -103,6 +106,11 @@ defmodule Durable.Config do
103106
type: :pos_integer,
104107
default: 60_000,
105108
doc: "Milliseconds between scheduler polls for due schedules"
109+
],
110+
log_level: [
111+
type: {:in, [false, :debug, :info, :warning, :error]},
112+
default: false,
113+
doc: "Log level for Ecto queries (false disables logging, default: false)"
106114
]
107115
]
108116

0 commit comments

Comments
 (0)