mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Show backtrace in 500 statuses using inspect_with_backtrace
This commit is contained in:
parent
a194bebe31
commit
8402f06bc3
2 changed files with 15 additions and 5 deletions
|
@ -5,11 +5,12 @@ class Kemal::CommonErrorHandler < HTTP::Handler
|
|||
begin
|
||||
call_next context
|
||||
rescue ex : Kemal::Exceptions::RouteNotFound
|
||||
Kemal.config.logger.write("Exception: #{ex.to_s}\n")
|
||||
Kemal.config.logger.write("Exception: #{ex.inspect_with_backtrace.colorize(:red)}\n")
|
||||
return render_404(context)
|
||||
rescue ex
|
||||
Kemal.config.logger.write("Exception: #{ex.to_s}\n")
|
||||
return render_500(context, ex.to_s)
|
||||
Kemal.config.logger.write("Exception: #{ex.inspect_with_backtrace.colorize(:red)}\n")
|
||||
verbosity = Kemal.config.env == "production" ? false : true
|
||||
return render_500(context, ex.inspect_with_backtrace, verbosity)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -46,7 +46,13 @@ def render_404(context)
|
|||
end
|
||||
|
||||
# Template for 500 Internal Server Error
|
||||
def render_500(context, ex)
|
||||
def render_500(context, backtrace, verbosity)
|
||||
message = if verbosity
|
||||
"<pre>#{backtrace}</pre>"
|
||||
else
|
||||
"<p>Something wrong with the server :(</p>"
|
||||
end
|
||||
|
||||
template = <<-HTML
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -55,11 +61,14 @@ def render_500(context, ex)
|
|||
body { text-align:center;font-family:helvetica,arial;font-size:22px;
|
||||
color:#888;margin:20px}
|
||||
#c {margin:0 auto;width:500px;text-align:left}
|
||||
pre {text-align:left;font-size:14px;color:#fff;background-color:#222;
|
||||
font-family:Operator,"Source Code Pro",Menlo,Monaco,Inconsolata,monospace;
|
||||
line-height:1.5;padding:10px;border-radius:2px;overflow:scroll}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Kemal has encountered an error. (500)</h2>
|
||||
<p>#{ex}</p>
|
||||
#{message}
|
||||
</body>
|
||||
</html>
|
||||
HTML
|
||||
|
|
Loading…
Reference in a new issue