@@ -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