Disable logging on specific route?

Hey there,

I have an endpoint that’s used to check to see if an instance is up and available (for use with a node balancer). The node balancer will hit this endpoint once a second or so. Obviously that produces a lot of unnecessary log chatter, so I’m trying to figure out how to disable the request logging for this endpoint only.

I noticed that in Phoenix.Controller there’s an option under Plug Pipeline called “log” - but I’m not sure if it’s relevant and how to use it if it is.

Anyone else figured this out before?

3 Likes

I figured it out :slight_smile: thanks to @benwilson512 and others!

The answer is to use pipelines:

  • Remove the Plug.Logger line from the endpoint.ex file.
  • Add a pipeline which doesn’t include the Logger
  • Add plug Plug.Logger to all other pipelines
  • Add pipe_through <pipeline which doesn't include logger> to the scope you don’t want to log.
10 Likes

Hi

I know this post has been a while but I have the same situation like this now.

I have a health_check controller which receives ping every xx secs, and would be ideal the logger to be turned off for it.

But the current phoenix version does not have Plug.Logger in endpoint.ex any more so I don’t where to disable it and then apply it in router.ex via different pipeline.

Anyone has idea?

elixir: 1.9.1
phoenix: 1.4.9

Kind regards
Rain

scope log: false do
  get "/pages/:id", PageController, :show
end

or

get "/pages/:id", PageController, :show, log: false

https://hexdocs.pm/phoenix/Phoenix.Router.html#scope/2
https://hexdocs.pm/phoenix/Phoenix.Router.html#get/4

4 Likes

thank you for you reply, however I cannot get it work as the documentation

> mix phx.new --version
Phoenix v1.4.9

> mix phx.new phx_app
....

and then I open router.ex, tried both

  scope "/", PhxAppWeb, log: false do
    pipe_through :browser

    get "/", PageController, :index
  end

and

  scope "/", PhxAppWeb do
    pipe_through :browser

    get "/", PageController, :index, log: false
  end

still I can see the logs

[info] GET /
[info] Sent 200 in 286µs

Regards