我想在项目的所有控制器动作之后向我的Elasticsearch发送一些conn信息,例如:控制器动作响应,请求参数和端点。
如果在解决操作后需要使用控制器返回的conn结构,该怎么办?
我在应用程序中创建了插件:
defmodule MyAppWeb.Plugs.RequestLogger do
@moduledoc false
alias Plug.Conn
def init(opts), do: opts
def call(conn, _opts) do
IO.puts("Getting conn after all controller actions here " <> Integer.to_string(conn.status))
conn
end
end
并在“ MyAppWeb.Router”之后的“ MyAppWeb.Endpoint”中进行设置:
defmodule MyAppWeb.Endpoint do
# ...
plug MyAppWeb.Router
plug MyAppWeb.Plugs.RequestLogger
end