c9-core/local/logger.js

40 wiersze
964 B
JavaScript

var sysLog = console.log;
var sysWarn = console.warn;
var sysError = console.error;
var server = require("./server");
console.log = function() {
writeLog.apply(null, arguments);
sysLog.apply(console, arguments);
};
console.warn = function() {
writeLog.apply(null, arguments);
sysWarn.apply(console, arguments);
};
console.error = function() {
writeLog.apply(null, arguments);
sysError.apply(console, arguments);
};
function writeLog(varargs) {
var args = [];
for (var i = 0; i < arguments.length; i++) {
args[i] = typeof arguments[i] == "string"
? arguments[i]
: tryStringify(arguments[i]);
}
server.appendLog(args.join(" ") + "\n");
}
function tryStringify(o) {
try {
return JSON.stringify(o);
} catch (e) {
return "" + o;
}
}
window.onerror = function(message, url, line, errorObj) {
writeLog("ERROR:", message, "at", url, ":", line, errorObj.stack);
};