Ecto Repo 记录器配置被忽略

Ecto Repo loggers config ignored

我尝试将 ecto 日志级别设置为 :info 并根据 docs:

在我的 Repo 配置中添加了这些行
config :app, App.Repo,
  loggers: [
    {Ecto.LogEntry, :log, [:info]}
  ]

但是我在日志中看到的是:

[debug] QUERY OK db=5.1ms
INSERT INTO ...

很明显没有效果。

我也试过添加自定义模块:

ecto_inspector.ex:

defmodule App.EctoInspector do
  def log(log) do
    IO.inspect(log)
    log
  end
end

config.exs:

loggers: [
  {App.EctoInspector, :log, []}
]

日志记录的配置方式有什么变化但没有在文档中更新吗?

我使用 Ecto v2.2.8

the documentation所述:

This option is processed at compile-time and may also be given as an option to use Ecto.Repo.

重点是我的。更改 config.exs 文件 不会 触发 Ecto 重新构建。可以通过将此选项传递给 use App.Repo:

来实现所需的行为
use App.Repo, loggers: [{Ecto.LogEntry, :log, [:info]}]

或通过强制 Ecto 使用 mix do: clean, deps.compile 重建(或 mix deps.compile --force ecto 仅重新编译 Ecto,归功于 Sascha Wolf。)