Add client IP to request log metadata
Set Logger metadata from conn.remote_ip in the RemoteIp plug so request logs include the client address.
This commit is contained in:
parent
03e2cf3403
commit
cf97bf236a
3 changed files with 12 additions and 6 deletions
|
|
@ -126,7 +126,7 @@ config :esbuild,
|
||||||
# Configures Elixir's Logger
|
# Configures Elixir's Logger
|
||||||
config :logger, :console,
|
config :logger, :console,
|
||||||
format: "$time $metadata[$level] $message\n",
|
format: "$time $metadata[$level] $message\n",
|
||||||
metadata: [:request_id]
|
metadata: [:request_id, :remote_ip]
|
||||||
|
|
||||||
# Use Jason for JSON parsing in Phoenix
|
# Use Jason for JSON parsing in Phoenix
|
||||||
config :phoenix, :json_library, Jason
|
config :phoenix, :json_library, Jason
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ config :hammer,
|
||||||
# The `http:` config above can be replaced with:
|
# The `http:` config above can be replaced with:
|
||||||
#
|
#
|
||||||
# https: [
|
# https: [
|
||||||
config :logger, :console, format: "[$level] $message\n"
|
config :logger, :console, format: "[$level] $metadata$message\n", metadata: [:remote_ip]
|
||||||
|
|
||||||
# Initialize plugs at runtime for faster development compilation
|
# Initialize plugs at runtime for faster development compilation
|
||||||
# port: 4001,
|
# port: 4001,
|
||||||
|
|
|
||||||
|
|
@ -11,15 +11,21 @@ defmodule AprsmeWeb.Plugs.RemoteIp do
|
||||||
|
|
||||||
import Plug.Conn
|
import Plug.Conn
|
||||||
|
|
||||||
|
require Logger
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def init(opts), do: opts
|
def init(opts), do: opts
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def call(conn, _opts) do
|
def call(conn, _opts) do
|
||||||
case get_client_ip(conn) do
|
conn =
|
||||||
{:ok, ip} -> %{conn | remote_ip: ip}
|
case get_client_ip(conn) do
|
||||||
:error -> conn
|
{:ok, ip} -> %{conn | remote_ip: ip}
|
||||||
end
|
:error -> conn
|
||||||
|
end
|
||||||
|
|
||||||
|
Logger.metadata(remote_ip: conn.remote_ip |> :inet.ntoa() |> to_string())
|
||||||
|
conn
|
||||||
end
|
end
|
||||||
|
|
||||||
defp get_client_ip(conn) do
|
defp get_client_ip(conn) do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue