2015-05-18 5 views
15

Независимо в iex> или с помощью mix run -e "My.code" при запуске проекта смешивания с использованием экто, отладка механизма в экто отображают кучу SQLs, как показано нижеОтключить Elixir Ecto Debug выход

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

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

Заранее спасибо.

ответ

10

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

+0

Вы сделали мой день! –

19

Если вы хотите изменить уровень журнала 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

Update (по @Milos):

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

+5

Этот параметр был изменен в Ecto 2.0.0, вместо 'log_level:: info' вам нужно использовать' loggers: [{Ecto.LogEntry,: log, [: info]}] '. – Milos

+0

Milos, спасибо. Можете ли вы сделать новый ответ верхнего уровня для этого? – ghayes

+3

Вы также можете просто остановить Ecto от регистрации, установив значение 'loggers' в пустой список, как в' loggers: [] '. –