The Phoenix controller has a separate logging module, which is set to debug by default.
You can try changing that setting by editing the my_app_web.ex file and changing the use Phoenix.Controller, namespace: MyAppWeb line to use Phoenix.Controller, namespace: MyAppWeb, log: :warn.
This allows you to have configuration which says ‘send all log output for application x to this back-end, and everything else to this other back-end’. One back-end is set at :debug level, the other at, say :warn, suppressing everything else.
We actually only use this in :dev mode, when we want to see debug output from our application, but cut-out debug noise from other applications.
In :test we set all logging to :warn, since we don’t usually want to see it at all, and in :prod we just send everything to console using the standard Elixir Logger (though usually set at :info level), and stream it to Splunk, so we don’t care about log overload!
Having recently made the switch from Java to Elixir I was also a bit disappointed to learn that there was no built-in mechanism to set different log levels for different modules/applications. To remedy this, and in the hope that his may be useful to others, I wrote a little Logger backend wrapper that adds exactly this functionality: FlexLogger.