Отключить вывод Elixir Ecto Debug

Что бы ни было в iex> или при использовании mix run -e "My.code", когда я запускаю проект смешивания с помощью ecto, механизм отладки Ecto отображает кучу SQL, как показано ниже

16:42:12.870 [debug] SELECT a0.`id` FROM `account` AS a0 WHERE (a0.`account_name` = ?) ["71000000313"] (39.6ms)`
...

Когда мне больше не нужен отладочный вывод, как я могу отключить его, я не могу найти ничего о том, как изменить материал уровня ecto log.

Спасибо заранее.

Ответы

Ответ 1

Уровень вашего ведения журнала настроен в ваших файлах 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.

Ответ 2

Если вы хотите изменить уровень журнала 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, если вы хотите изменить общий уровень журнала (не только уровень журнала Ecto), например:

config :logger, level: :info

Обновление (@Milos):

Начиная с Ecto 2.0.0 вместо log_level: :info вам нужно использовать loggers: [{Ecto.LogEntry, :log, [:info]}].

Обновление (@AndyMacKinlay):

Начиная с Ecto 3.0.0, вместо log_level: :info вам нужно использовать log: :info.

Ответ 3

Проще говоря loggers: [] в

config :my_app, MyApp.Repo, adapter: Ecto.Adapters.Postgres, database: "my_app_repo", username: "DB_USERNAME", password: "DB_PASSWORD", hostname: "DB_HOST", loggers: []

Ответ 4

Ответ Ecto 3 на полное отключение регистрации будет:

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

Ответ 5

Чтобы временно отключить сообщения отладки, вы можете сделать Logger.configure(level: :warn), а затем снова включить с помощью Logger.configure(level: :debug).

https://hexdocs.pm/logger/Logger.html#Levels