禁用Elixir Ecto Debug输出

问题描述 投票:18回答:4

无论在iex>中使用mix run -e "My.code"还是在使用ecto运行混合项目时使用16:42:12.870 [debug] SELECT a0.`id` FROM `account` AS a0 WHERE (a0.`account_name` = ?) ["71000000313"] (39.6ms)` ... ,Ecto的调试机制都显示了一堆SQL,如下所示

config/#{env}.exs

当我不再需要调试输出时,如何关闭它,我找不到任何关于如何更改ecto日志级别的东西。

提前致谢。

debugging elixir ecto
4个回答
17
投票

您的日志记录级别在config/prod.exs文件中配置。如果你研究:info,它很可能已经将该级别设置为config :logger, level: :info

MIX_ENV=prod iex -S mix

因此,如果您使用MIX_ENV=prod mix release运行应用程序,则无法获得调试输出。这意味着当您使用level: :info之类的东西构建版本时,生成的构建将不会产生此输出。或者,您可以通过更改相应的:warn为您想要的任何环境设置config/#{env}.exsEcto


25
投票

如果要更改log_level(2.0之前的)日志级别(并且仅更改它),则可以使用可在应用程序Ecto存储库配置中设置的config :my_app, MyApp.Repo, adapter: Ecto.Adapters.Postgres, database: "my_app", username: "my_app", password: "secret", hostname: "localhost", port: 5433, log_level: :info 配置选项。例如:

Logger

当然除了上面你可以随时改变level配置日志Ecto选项,如果你想改变整体日志级别(不仅是config :logger, level: :info日志级别),例如:

@Milos

更新(由log_level: :info):

从Ecto 2.0.0开始,你需要使用loggers: [{Ecto.LogEntry, :log, [:info]}]而不是@AndyMacKinlay

更新(由log_level: :info):

从Ecto 3.0.0开始,你需要使用log: :info而不是loggers: []


4
投票

简单地把 config :my_app, MyApp.Repo, adapter: Ecto.Adapters.Postgres, database: "my_app_repo", username: "DB_USERNAME", password: "DB_PASSWORD", hostname: "DB_HOST", loggers: [] 放入

config :app, App.Repo, username: "postgres", password: "postgres", database: "app_dev", log: false


2
投票

Ecto 3完全禁用日志记录的答案是:

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.