Ecto Repo记录器配置被忽略

时间:2018-02-08 02:05:42

标签: elixir ecto

我尝试将ecto日志级别设置为:info并根据docs在我的回购配置中添加这些行:

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

1 个答案:

答案 0 :(得分:1)

the documentation中所述:

  

此选项在编译时处理,也可以作为使用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。)