在使用ecto运行混合项目时,无论是在iex>
中还是在mix run -e "My.code"
中,Ecto的调试机制都会显示一堆SQL,如下所示
16:42:12.870 [debug] SELECT a0.`id` FROM `account` AS a0 WHERE (a0.`account_name` = ?) ["71000000313"] (39.6ms)`
...
当我不再需要调试输出时,我如何关闭它,我找不到任何关于如何更改ecto日志级别的内容。
提前谢谢。
发布于 2015-05-18 00:26:28
日志记录级别是在config/#{env}.exs
文件中配置的。如果您查看config/prod.exs
,很可能已经将该级别设置为:info
config :logger, level: :info
因此,如果您使用MIX_ENV=prod iex -S mix
运行该应用程序,您将无法获得调试输出。这意味着当您用类似于MIX_ENV=prod mix release
的东西构建一个发行版时,生成的版本不会产生这个输出。或者,您可以通过更改适当的level: :info
或:warn
来为任何您想要的环境设置config/#{env}.exs
或config/#{env}.exs
。
发布于 2015-05-18 23:42:54
如果您想要更改Ecto
(预2.0)日志级别(并且只更改它),那么您可以使用log_level
配置选项,该选项可以在您的应用程序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
配置日志选项,例如:
config :logger, level: :info
更新(由更新)
由于ECTO2.0.0,而不是log_level: :info
,您需要使用loggers: [{Ecto.LogEntry, :log, [:info]}]
。
更新(由更新)
由于ECTO3.0.0,而不是log_level: :info
,您需要使用log: :info
。
更新(由更新)
从ECTO3.0.0开始,您还可以完全禁用日志记录log: false
。
发布于 2019-03-05 13:54:31
Ecto 3完全禁用日志记录的答案是:
config :app, App.Repo,
username: "postgres",
password: "postgres",
database: "app_dev",
log: false
https://stackoverflow.com/questions/30297825
复制