diff options
author | lambda <pleromagit@rogerbraun.net> | 2019-02-20 18:21:58 +0000 |
---|---|---|
committer | lambda <pleromagit@rogerbraun.net> | 2019-02-20 18:21:58 +0000 |
commit | 1f85c9c9c7c2abe32604d983d6650ff11aac6e7d (patch) | |
tree | 3d6c5fe1e55c5dba9a663ae3173a1d3ef3ecbe3f | |
parent | 54f9e3d38243615da6376338fc85588235586410 (diff) | |
parent | 22e2ed235d9e7ebaab313462d0d0a9fa040cd44f (diff) | |
download | pleroma-1f85c9c9c7c2abe32604d983d6650ff11aac6e7d.tar.gz |
Merge branch 'feature/improve-error-logging' into 'develop'
logging: improve visibility into ISE errors
See merge request pleroma/pleroma!845
-rw-r--r-- | lib/pleroma/web/views/error_view.ex | 11 | ||||
-rw-r--r-- | test/web/views/error_view_test.exs | 9 |
2 files changed, 16 insertions, 4 deletions
diff --git a/lib/pleroma/web/views/error_view.ex b/lib/pleroma/web/views/error_view.ex index 86a1744b7..f4c04131c 100644 --- a/lib/pleroma/web/views/error_view.ex +++ b/lib/pleroma/web/views/error_view.ex @@ -4,13 +4,20 @@ defmodule Pleroma.Web.ErrorView do use Pleroma.Web, :view + require Logger def render("404.json", _assigns) do %{errors: %{detail: "Page not found"}} end - def render("500.json", _assigns) do - %{errors: %{detail: "Internal server error"}} + def render("500.json", assigns) do + Logger.error("Internal server error: #{inspect(assigns[:reason])}") + + if Mix.env() != :prod do + %{errors: %{detail: "Internal server error", reason: inspect(assigns[:reason])}} + else + %{errors: %{detail: "Internal server error"}} + end end # In case no render clause matches or no diff --git a/test/web/views/error_view_test.exs b/test/web/views/error_view_test.exs index 16a0c8cef..d529fd2c3 100644 --- a/test/web/views/error_view_test.exs +++ b/test/web/views/error_view_test.exs @@ -14,11 +14,16 @@ defmodule Pleroma.Web.ErrorViewTest do test "render 500.json" do assert render(Pleroma.Web.ErrorView, "500.json", []) == - %{errors: %{detail: "Internal server error"}} + %{errors: %{detail: "Internal server error", reason: "nil"}} end test "render any other" do assert render(Pleroma.Web.ErrorView, "505.json", []) == - %{errors: %{detail: "Internal server error"}} + %{errors: %{detail: "Internal server error", reason: "nil"}} + end + + test "render 500.json with reason" do + assert render(Pleroma.Web.ErrorView, "500.json", reason: "test reason") == + %{errors: %{detail: "Internal server error", reason: "\"test reason\""}} end end |