}
function log() {
- $logmsg = $this->dbh->escape_string($_REQUEST['logmsg']);
+ $msg = $this->dbh->escape_string($_REQUEST['msg']);
+ $file = $this->dbh->escape_string(basename($_REQUEST['file']));
+ $line = (int) $_REQUEST['line'];
+ $context = $this->dbh->escape_string($_REQUEST['context']);
- if ($logmsg) {
+ if ($msg) {
Logger::get()->log_error(E_USER_WARNING,
- $logmsg, '[client-js]', 0, false);
- }
+ $msg, 'client-js:' . $file, $line, $context);
- echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
+ echo json_encode(array("message" => "HOST_ERROR_LOGGED"));
+ } else {
+ echo json_encode(array("error" => "MESSAGE_NOT_FOUND"));
+ }
}
}
function report_error(message, filename, lineno, colno, error) {
- exception_error(error);
+ exception_error(error, null, filename, lineno);
}
-function exception_error(e, e_compat) {
+function exception_error(e, e_compat, filename, lineno, colno) {
if (typeof e == "string") e = e_compat;
if (!e) return; // no exception object, nothing to report.
try {
+ console.error(e);
+ var msg = e.toString();
try {
new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "log", logmsg: msg},
+ parameters: {op: "rpc", method: "log",
+ file: e.fileName ? e.fileName : filename,
+ line: e.lineNumber ? e.lineNumber : lineno,
+ msg: msg, context: e.stack},
onComplete: function (transport) {
- console.log(transport.responseText);
+ console.warn(transport.responseText);
} });
} catch (e) {
console.error("Exception while trying to log the error.", e);
}
- var msg = e.toString();
-
- console.error(msg);
-
var content = "<div class='fatalError'><p>" + msg + "</p>";
if (e.stack) {