A tiny 1.4 kB library that overrides the browser's console.*
functions allowing the logged messages to be displayed in HTML.
Migrating from 1.x
to 2.0
? See MIGRATING.md
Installation:
Simply include the file on your page:
<script type="application/javascript" src="console-log-html.min.js"></script>
<!-- Or, alternatively, use the CDN URL -->
<script type="application/javascript" src="//cdn.rawgit.com/Alorel/console-log-html/master/console-log-html.min.js"></script>
It can also be included as a dependency from npm:
npm install console-log-html --save
(function(){ // Your closure
var ConsoleLogHTML = require('console-log-html');
})();
Usage:
<ul id="myULContainer"></ul> <!-- I will hold the log messages -->
<script type="application/javascript" src="console-log-html.min.js"></script>
<script>
ConsoleLogHTML.connect(document.getElementById("myULContainer")); // Redirect log messages
ConsoleLogHTML.disconnect(); // Stop redirecting
</script>
You can also instruct the script to only log to the console by passing a second argument to console.*()
, e.g.:
console.log("foo"); // Logs "foo" to HTML
console.log("Look, some JSON:", {foo: 'bar'}); // Logs "Look, some JSON: Object {"foo":"bar"}" to HTML
console.skipHtml.log("bar"); // Logs only to the console
Customisation
Default styles
The default css classes can be overriden in ConsoleLogHTML.DEFAULTS
:
ConsoleLogHTML.DEFAULTS.error = "some-error-css-class"; // Will be applied to console.error()
ConsoleLogHTML.DEFAULTS.log = "another-override"; // Will be applied to console.log()
During connect()
The connect method has the following signature:
function connect(target, options, includeTimestamp, logToConsole){}
target
has already been covered - it's the <ul> elementoptions
allows you to override the css classes inConsoleLogHTML.DEFAULTS
for the duration of theconnect
, i.e. it
would not save the values. For example, if you wanted to override thelog
andwarn
CSS classes you could pass the object{ "warn": "my-warn-css-class", "log": "my-log-css-class" }
includeTimestamp
- when set totrue
(the default value), a timestamp will be prepended to each message as it
appears in the <ul>. The timestamp's format depends on the user as it is created via(new Date()).toLocaleTimeString()
logToConsole
- when set totrue
(the default value), appear both in the console and the <ul>; when set
tofalse
, they appear only in the <ul>.appendAtBottom
- when set totrue
(default=false
), log messages will be appended at the end of the <ul>-list.
More information: