aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2019-02-20 18:21:58 +0000
committerlambda <pleromagit@rogerbraun.net>2019-02-20 18:21:58 +0000
commit1f85c9c9c7c2abe32604d983d6650ff11aac6e7d (patch)
tree3d6c5fe1e55c5dba9a663ae3173a1d3ef3ecbe3f
parent54f9e3d38243615da6376338fc85588235586410 (diff)
parent22e2ed235d9e7ebaab313462d0d0a9fa040cd44f (diff)
downloadpleroma-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.ex11
-rw-r--r--test/web/views/error_view_test.exs9
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