Adds Error Handling and Realtime Runtime Reviewal (#4679)

* Adds Error Handler

Adds a /world/Error proc to handle runtime errors. This proc replaces
the normal runtime logging behavior, providing the following
improvements:

- Adds timestamps to runtimes
- Pads or omits certain lines
- Continues logging runtimes after the 99th (with less info, as provided
by BYOND)
- Adds ckey and accurate xyz to usr info
- Continues including usr info after 19th runtime
- Silences spammy runtimes (by default, a runtime that occurs 10 times
in 10 minutes gets ignored for the next 10 minutes)

* Adds runtime viewer

Also fixes a minor mistake in the error handler

* Sanitizes HTML in Error Viewer

Also removes the stray return from the end of the error handler

* Prettifies Error Viewer

Now uses browser datum and some extra bits of formatting, inspired by
the changes made by @PJB3005

* Error Handling Improvements

- Skipped error counts now show up in the error viewer
- Proper runtimes caught by a process are now sent to the main error
handler
- The error handler and viewer can now handle a provided src, such as
one from a processing runtime
- Moved some info generation into helper procs
This commit is contained in:
Krausus
2016-06-19 12:53:07 -04:00
committed by Fox McCloud
parent 1bedc13bcc
commit 30517a9b10
9 changed files with 360 additions and 2 deletions
+10
View File
@@ -1234,3 +1234,13 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
// Clear the user's cache so they get resent.
usr.client.cache = list()
/client/proc/view_runtimes()
set category = "Debug"
set name = "View Runtimes"
set desc = "Open the Runtime Viewer"
if(!check_rights(R_DEBUG))
return
error_cache.showTo(usr)