better javascript error reporting, save error reports in tt-rss log

This commit is contained in:
Andrew Dolgov 2013-04-20 10:43:21 +04:00
parent 9ce600c801
commit f66492d357
2 changed files with 48 additions and 1 deletions

View File

@ -634,5 +634,16 @@ class RPC extends Handler_Protected {
} }
} }
function log() {
$logmsg = $this->dbh->escape_string($_REQUEST['logmsg']);
if ($logmsg) {
Logger::get()->log_error(E_USER_WARNING,
$logmsg, '[client-js]', 0, false);
}
echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
}
} }
?> ?>

View File

@ -50,6 +50,21 @@ function exception_error(location, e, ext_info) {
} }
} }
try {
new Ajax.Request("backend.php", {
parameters: {op: "rpc", method: "log", logmsg: msg},
onComplete: function (transport) {
console.log(transport.responseText);
} });
} catch (eii) {
console.log("Exception while trying to log the error.");
console.log(eii);
}
msg += "<p>"+ __("The error will be reported to the configured log destination.") +
"</p>";
var content = "<div class=\"fatalError\">" + var content = "<div class=\"fatalError\">" +
"<pre>" + msg + "</pre>"; "<pre>" + msg + "</pre>";
@ -106,7 +121,28 @@ function exception_error(location, e, ext_info) {
dialog.show(); dialog.show();
} catch (e) { } catch (ei) {
console.log("Exception while trying to report an exception. Oh boy.");
console.log(ei);
console.log("Original exception:");
console.log(e);
msg += "\n\nAdditional exception caught while trying to show the error dialog.\n\n" + format_exception_error('exception_error', ei);
try {
new Ajax.Request("backend.php", {
parameters: {op: "rpc", method: "log", logmsg: msg},
onComplete: function (transport) {
console.log(transport.responseText);
} });
} catch (eii) {
console.log("Third exception while trying to log the error! Seriously?");
console.log(eii);
}
msg += "\n\nThe error will be reported to the configured log destination.";
alert(msg); alert(msg);
} }