Skip to content

Commit b4b9b9e

Browse files
authored
feat: add phoenix route to plug metadata (#90)
* feat: add phoenix route to plug metadata * add phoenix as optional dep * revert google_cloud_logger changes
1 parent 8f9ed25 commit b4b9b9e

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

lib/logger_json/plug/metadata_formatters/datadog_logger.ex

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,23 @@ if Code.ensure_loaded?(Plug) do
5555
end
5656
end
5757

58-
defp phoenix_metadata(%{private: %{phoenix_controller: controller, phoenix_action: action}}) do
59-
[phoenix: json_map(controller: controller, action: action)]
58+
defp phoenix_metadata(%{private: %{phoenix_controller: controller, phoenix_action: action}} = conn) do
59+
[phoenix: json_map(controller: controller, action: action, route: phoenix_route(conn))]
6060
end
6161

6262
defp phoenix_metadata(_conn) do
6363
[]
6464
end
65+
66+
if Code.ensure_loaded?(Phoenix.Router) do
67+
defp phoenix_route(%{private: %{phoenix_router: router}, method: method, request_path: path, host: host} = conn) do
68+
case Phoenix.Router.route_info(router, method, path, host) do
69+
%{route: route} -> route
70+
_ -> nil
71+
end
72+
end
73+
end
74+
75+
defp phoenix_route(_conn), do: nil
6576
end
6677
end

mix.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ defmodule LoggerJSON.Mixfile do
3838
{:jason, "~> 1.0"},
3939
{:ecto, "~> 2.1 or ~> 3.0", optional: true},
4040
{:plug, "~> 1.0", optional: true},
41+
{:phoenix, ">= 1.5.0", optional: true},
4142
{:telemetry, "~> 0.4.0 or ~> 1.0", optional: true},
4243
{:ex_doc, ">= 0.15.0", only: [:dev, :test], runtime: false},
4344
{:excoveralls, ">= 0.5.0", only: [:dev, :test]},

mix.lock

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
"mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"},
2222
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"},
2323
"parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"},
24+
"phoenix": {:hex, :phoenix, "1.6.11", "29f3c0fd12fa1fc4d4b05e341578e55bc78d96ea83a022587a7e276884d397e4", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "1664e34f80c25ea4918fbadd957f491225ef601c0e00b4e644b1a772864bfbc2"},
25+
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"},
26+
"phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"},
2427
"plug": {:hex, :plug, "1.11.1", "f2992bac66fdae679453c9e86134a4201f6f43a687d8ff1cd1b2862d53c80259", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "23524e4fefbb587c11f0833b3910bfb414bf2e2534d61928e920f54e3a1b881f"},
2528
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
2629
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"},

0 commit comments

Comments
 (0)