Отключить вывод 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