JavaScript console that sends logs and unexpected browser errors to a remote server.
You have plenty of logs for your server-side applications but you do not know much about your client-side. You need to know what is happening there too.
Insert browser-console.js, initialize the console and play with it:
<script src="lib/browser-console.js"></script>
<script>
console.init({
serverUrl: "/logs"
});
console.warn("Writes a warning log in the browser console and sends it to the server", new Error("Oops"));
console.xxxx("Sends an unexpected JS error to the server, as there is no 'xxxx' level/method");
</script>The following requests will be sent (POST) to the server URL (/logs):
{
"level": "warn",
"message": "Writes a warning log in the browser console and sends it to the server, Error: Oops!"
}{
"level": "error",
"message": "[http://localhost:1337/:16] TypeError: console.xxxx is not a function"
}HTTP headers of POST requests can be useful too:
Referer: http://localhost:1337/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/28.0
Your server needs to handle POST requests on the server URL and exploit the logs. See a Node.js example at server/server.js.
serverUrl
- Default value: none
- Description: URL of the server for sending logs
levels
- Default value:
["info", "warn", "error"] - Description: array of log levels, from the less critical to the most critical; for each level, a method is created on the console object.
levelEnabledOnServer
- Default value: first item in the levels list
- Description: minimum level for sending logs to the server
levelForConsoleLog
- Default value: first item in the levels list
- Description: level used for
console.logcalls
levelForJavaScriptErrors
- Default value: last item in the levels list
- Description: level used for JavaScript errors logging
logJavaScriptErrors
- Default value:
true - Description: activation flag for logging JavaScript errors (
window.onerror)
Optionally insert stacktrace.js and you will get stack traces for errors:
{
"level": "warn",
"message": "Writes a warning log in the browser console and sends it to the server, Error: Oops!",
"stackTrace": "{anonymous}()@http://localhost:1337/:15"
}It works better in browsers that fully support the HTML 5 draft spec for ErrorEvent and window.onerror.
grunt jasmine
grunt watch:jasmine # with live reloadinggrunt jasmine:console:build
grunt jasmine:console:build watch:jasmine-build # with livereloadingthen open file .grunt/SpecRunner.html in a browser
grunt uglifygrunt cleanThis project was inspired by RESTHub's console.js.