无论在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日志级别的东西。
提前致谢。
您的日志记录级别在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
或Ecto
。
如果要更改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
日志级别),例如:
更新(由log_level: :info
):
从Ecto 2.0.0开始,你需要使用loggers: [{Ecto.LogEntry, :log, [:info]}]
而不是@AndyMacKinlay。
更新(由log_level: :info
):
从Ecto 3.0.0开始,你需要使用log: :info
而不是loggers: []
。
简单地把
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
Ecto 3完全禁用日志记录的答案是:
qazxswpoi