Skip to content

Commit cfb655f

Browse files
committed
Accept on config as well
1 parent ee79088 commit cfb655f

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

integration_test/sql/logging.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ defmodule Ecto.Integration.LoggingTest do
140140

141141
# Requires upstream change in Ecto to pass
142142
out = capture_log(fn ->
143-
TestRepo.all(Post, Keyword.put(@stacktrace_opts, :stacktrace, {Ecto.Adapters.SQL, :last_non_ecto, [2]}))
143+
TestRepo.all(Post, Keyword.put(@stacktrace_opts, :log_stacktrace_mfa, {Ecto.Adapters.SQL, :last_non_ecto, [2]}))
144144

145145
:ok
146146
end)

lib/ecto/adapters/sql.ex

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -660,9 +660,9 @@ defmodule Ecto.Adapters.SQL do
660660

661661

662662
defp sql_call(adapter_meta, callback, args, params, opts) do
663-
%{pid: pool, telemetry: telemetry, sql: sql, opts: default_opts, stacktrace: stacktrace_config} = adapter_meta
663+
%{pid: pool, telemetry: telemetry, sql: sql, opts: default_opts, log_stacktrace_mfa: log_stacktrace_mfa} = adapter_meta
664664
conn = get_conn_or_pool(pool, adapter_meta)
665-
opts = with_log(telemetry, stacktrace_config, params, opts ++ default_opts)
665+
opts = with_log(telemetry, log_stacktrace_mfa, params, opts ++ default_opts)
666666
args = args ++ [params, opts]
667667
apply(sql, callback, [conn | args])
668668
end
@@ -861,6 +861,7 @@ defmodule Ecto.Adapters.SQL do
861861
end
862862

863863
log = Keyword.get(config, :log, :debug)
864+
log_stacktrace_mfa = Keyword.get(config, :log_stacktrace_mfa, {__MODULE__, :last_non_ecto, [1]})
864865

865866
if log not in @valid_log_levels do
866867
raise """
@@ -886,6 +887,7 @@ defmodule Ecto.Adapters.SQL do
886887
telemetry: telemetry,
887888
sql: connection,
888889
stacktrace: stacktrace,
890+
log_stacktrace_mfa: log_stacktrace_mfa,
889891
opts: Keyword.take(config, @pool_opts)
890892
}
891893

@@ -1098,8 +1100,8 @@ defmodule Ecto.Adapters.SQL do
10981100

10991101
@doc false
11001102
def reduce(adapter_meta, statement, params, opts, acc, fun) do
1101-
%{pid: pool, telemetry: telemetry, sql: sql, stacktrace: stacktrace_config, opts: default_opts} = adapter_meta
1102-
opts = with_log(telemetry, stacktrace_config, params, opts ++ default_opts)
1103+
%{pid: pool, telemetry: telemetry, sql: sql, log_stacktrace_mfa: log_stacktrace_mfa, opts: default_opts} = adapter_meta
1104+
opts = with_log(telemetry, log_stacktrace_mfa, params, opts ++ default_opts)
11031105

11041106
case get_conn(pool) do
11051107
%DBConnection{conn_mode: :transaction} = conn ->
@@ -1114,8 +1116,8 @@ defmodule Ecto.Adapters.SQL do
11141116

11151117
@doc false
11161118
def into(adapter_meta, statement, params, opts) do
1117-
%{pid: pool, telemetry: telemetry, sql: sql, opts: default_opts, stacktrace: stacktrace_config} = adapter_meta
1118-
opts = with_log(telemetry, stacktrace_config, params, opts ++ default_opts)
1119+
%{pid: pool, telemetry: telemetry, sql: sql, opts: default_opts, log_stacktrace_mfa: log_stacktrace_mfa} = adapter_meta
1120+
opts = with_log(telemetry, log_stacktrace_mfa, params, opts ++ default_opts)
11191121

11201122
case get_conn(pool) do
11211123
%DBConnection{conn_mode: :transaction} = conn ->
@@ -1232,11 +1234,11 @@ defmodule Ecto.Adapters.SQL do
12321234

12331235
## Log
12341236

1235-
defp with_log(telemetry, stacktrace_config, params, opts) do
1236-
[log: &log(telemetry, stacktrace_config, params, &1, opts)] ++ opts
1237+
defp with_log(telemetry, log_stacktrace_mfa, params, opts) do
1238+
[log: &log(telemetry, log_stacktrace_mfa, params, &1, opts)] ++ opts
12371239
end
12381240

1239-
defp log({repo, log, event_name}, stacktrace_config, params, entry, opts) do
1241+
defp log({repo, log, event_name}, log_stacktrace_mfa, params, entry, opts) do
12401242
%{
12411243
connection_time: query_time,
12421244
decode_time: decode_time,
@@ -1287,31 +1289,28 @@ defmodule Ecto.Adapters.SQL do
12871289
{true, level} ->
12881290
Logger.log(
12891291
level,
1290-
fn -> log_iodata(measurements, repo, source, query, log_params, result, stacktrace, stacktrace_mfa(stacktrace_config, opts)) end,
1292+
fn -> log_iodata(measurements, repo, source, query, log_params, result, stacktrace, stacktrace_mfa(log_stacktrace_mfa, opts)) end,
12911293
ansi_color: sql_color(query)
12921294
)
12931295

12941296
{opts_level, args_level} ->
12951297
Logger.log(
12961298
opts_level || args_level,
1297-
fn -> log_iodata(measurements, repo, source, query, log_params, result, stacktrace, stacktrace_mfa(stacktrace_config, opts)) end,
1299+
fn -> log_iodata(measurements, repo, source, query, log_params, result, stacktrace, stacktrace_mfa(log_stacktrace_mfa, opts)) end,
12981300
ansi_color: sql_color(query)
12991301
)
13001302
end
13011303

13021304
:ok
13031305
end
13041306

1305-
defp stacktrace_mfa(stacktrace_config, opts) do
1307+
defp stacktrace_mfa(log_stacktrace_mfa, opts) do
13061308
case Keyword.get(opts, :log_stacktrace_mfa) do
13071309
{_, _, _} = mfa ->
13081310
mfa
13091311

13101312
_ ->
1311-
case stacktrace_config do
1312-
{_, _, _} = mfa -> mfa
1313-
_ -> {__MODULE__, :last_non_ecto, [1]}
1314-
end
1313+
log_stacktrace_mfa
13151314
end
13161315
end
13171316

@@ -1406,8 +1405,8 @@ defmodule Ecto.Adapters.SQL do
14061405
## Connection helpers
14071406

14081407
defp checkout_or_transaction(fun, adapter_meta, opts, callback) do
1409-
%{pid: pool, telemetry: telemetry, opts: default_opts, stacktrace: stacktrace_config} = adapter_meta
1410-
opts = with_log(telemetry, stacktrace_config, [], opts ++ default_opts)
1408+
%{pid: pool, telemetry: telemetry, opts: default_opts, log_stacktrace_mfa: log_stacktrace_mfa} = adapter_meta
1409+
opts = with_log(telemetry, log_stacktrace_mfa, [], opts ++ default_opts)
14111410

14121411
callback = fn conn ->
14131412
previous_conn = put_conn(pool, conn)

0 commit comments

Comments
 (0)