24

iex>ecto を使用して mix プロジェクトを実行すると、 Ectomix run -e "My.code"のデバッグ メカニズムは以下のような一連の SQL を表示します。

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

デバッグ出力がもう必要ない場合、どうすればオフにできますか? ecto ログ レベルのものを変更する方法について何も見つかりません。

前もって感謝します。

4

5 に答える 5

36

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構成ログオプションを変更できます。levelEcto

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

更新 ( @Simonによる):

Ecto 3.0.0 以降、ロギングを完全に無効にすることもできますlog: false

于 2015-05-19T07:42:54.720 に答える
22

ログ レベルは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.

于 2015-05-18T08:26:28.407 に答える
4

シンプルにloggers: []入れる

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

于 2018-09-24T09:39:50.793 に答える