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)`
...
デバッグ出力が不要になった場合、どうすればオフにできますか、外部ログレベルのものを変更する方法について何も見つかりません。
前もって感謝します。
ロギングレベルは、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
を設定することもできます。
Ecto
(2.0より前)のログレベル(およびそれのみ)を変更する場合は、アプリケーションのEctoリポジトリ構成で設定できるlog_level
構成オプションを使用できます。例:
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
を使用する必要があります。
シンプルプットloggers: []
in
config :my_app, MyApp.Repo, adapter: Ecto.Adapters.Postgres, database: "my_app_repo", username: "DB_USERNAME", password: "DB_PASSWORD", hostname: "DB_Host", loggers: []
ロギングを完全に無効にするためのEcto3の答えは次のとおりです。
config :app, App.Repo,
username: "postgres",
password: "postgres",
database: "app_dev",
log: false
デバッグメッセージを一時的に無効にするには、Logger.configure(level: :warn)
を実行してから、Logger.configure(level: :debug)
で再度有効にします。