+<?xml version="1.0"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">\r
+ <head>\r
+ <title>log4javascript in-page console demo</title>\r
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />\r
+ <meta name="author" content="Tim Down - tim@log4javascript.org" />\r
+ <meta name="description" content="log4javascript, a logging framework for JavaScript based on log4j" />\r
+ <meta name="robots" content="all" />\r
+ <link rel="stylesheet" type="text/css" media="screen,print" href="../main.css" title="Default" />\r
+ <script type="text/javascript" src="../js/log4javascript_uncompressed.js"></script>\r
+ <script type="text/javascript">\r
+ // <![CDATA[\r
+ var log = log4javascript.getLogger("main");\r
+ var appender = new log4javascript.InPageAppender();\r
+ log.addAppender(appender);\r
+ log.debug("This is a debugging message from the log4javascript in-page page");\r
+\r
+ var words = ["Watford", "eased", "their", "relegation", "fears", "with", "a", "win",\r
+ "against", "a", "Charlton", "side", "who", "slipped", "further", "towards", "the",\r
+ "drop", "Don", "Cowie", "drilled", "in", "a", "shot", "to", "put", "the", "Hornets",\r
+ "ahead", "before", "Tresor", "Kandol", "ended", "a", "powerful", "run", "by",\r
+ "rounding", "keeper", "Scott", "Loach", "and", "slotting", "in", "to", "level"\r
+ ];\r
+\r
+ var loaded = false;\r
+\r
+ function generateRandom() {\r
+ var numberOfEntries = parseInt(document.getElementById("numberOfLogEntries").value);\r
+ for (var i = 0; i < numberOfEntries; i++) {\r
+ var numberOfWords = 1 + Math.floor(10 * Math.random());\r
+ var entryWords = [];\r
+ for (var j = 0; j < numberOfWords; j++) {\r
+ entryWords.push(words[Math.floor(Math.random() * words.length)]);\r
+ }\r
+ var entryMessage = entryWords.join(" ");\r
+ var levelNum = Math.floor(Math.random() * 6);\r
+ switch (levelNum) {\r
+ case 0:\r
+ log.trace(entryMessage);\r
+ break;\r
+ case 1:\r
+ log.debug(entryMessage);\r
+ break;\r
+ case 2:\r
+ log.info(entryMessage);\r
+ break;\r
+ case 3:\r
+ log.warn(entryMessage);\r
+ break;\r
+ case 4:\r
+ log.error(entryMessage);\r
+ break;\r
+ case 5:\r
+ log.fatal(entryMessage);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ \r
+ var consoleVisible = true;\r
+ \r
+ function toggleConsole(button) {\r
+ if (consoleVisible) {\r
+ appender.hide();\r
+ button.value = "Show console";\r
+ consoleVisible = false;\r
+ } else {\r
+ appender.show();\r
+ button.value = "Hide console";\r
+ consoleVisible = true;\r
+ }\r
+ }\r
+\r
+ function generateObjectExpansion() {\r
+ var debugObj = {\r
+ a: {\r
+ b: "stuff",\r
+ c: 3,\r
+ d: {\r
+ e: ["a", "b", "c"]\r
+ }\r
+ },\r
+ f: "Things",\r
+ g: 5\r
+ };\r
+ log.debug(debugObj);\r
+ }\r
+\r
+ function generateError() {\r
+ try {\r
+ throw new Error("Made up error");\r
+ } catch (ex) {\r
+ log.error("Logging an error!", ex);\r
+ }\r
+ }\r
+ // ]]>\r
+ </script>\r
+ </head>\r
+ <body>\r
+ <div id="container" class="nonav">\r
+ <div id="header">\r
+ <h1><a href="/docs/index.html">log4javascript</a></h1>\r
+ </div>\r
+ <div id="content">\r
+ <div id="nav">\r
+ <a class="navitem" href="../index.html">home</a>\r
+ | <a class="navitem" href="http://sourceforge.net/projects/log4javascript" target="_blank" title="Download (opens in new window)">download</a>\r
+ | <a class="navitem" href="../docs/index.html">docs</a>\r
+ | <a class="navitem" href="../docs/quickstart.html">quick start</a>\r
+ | <a class="navitem" href="index.html">demos</a>\r
+ | <a class="navitem" href="http://log4javascript.org" target="_blank">website</a>\r
+ | <a class="navitem" href="http://www.timdown.co.uk" target="_blank">timdown.co.uk</a>\r
+ </div>\r
+ <h1>log4javascript in-page console demo</h1>\r
+ <p>\r
+ This demo demonstrates an in-page logger. The example uses the default behaviour, which\r
+ is to place the log console in a fixed area at the bottom of the page. However, the\r
+ console may be placed inside any element in the page. To do this, you may specify the ID\r
+ of the element (even if the page has not yet loaded) or a reference to the element itself.\r
+ </p>\r
+ <p>\r
+ Enter a log message below and click on one of the buttons to log\r
+ your message at your desired level. You can then filter by\r
+ log level, toggle word-wrapping and perform text and regular\r
+ expression searches on the log entries.\r
+ </p>\r
+ <div class="example">\r
+ <input type="button" value="Hide console" onclick="toggleConsole(this)" />\r
+ <br />\r
+ <input type="text" id="logText" value="Put log message here" />\r
+ <input type="button" value="debug" onclick="log.debug(document.getElementById('logText').value)" />\r
+ <input type="button" value="info" onclick="log.info(document.getElementById('logText').value)" />\r
+ <input type="button" value="warn" onclick="log.warn(document.getElementById('logText').value)" />\r
+ <input type="button" value="error" onclick="log.error(document.getElementById('logText').value)" />\r
+ <input type="button" value="fatal" onclick="log.fatal(document.getElementById('logText').value)" />\r
+ <br />\r
+ <input type="button" value="assert 1 equals 1" onclick="log.assert(1 === 1)" />\r
+ <input type="button" value="assert 1 equals 2" onclick="log.assert(1 === 2)" />\r
+ <br />\r
+ Generate <input type="text" size="5" id="numberOfLogEntries" value="50" /> random log entries\r
+ <input type="button" value="go" onclick="generateRandom()" />\r
+ <br />\r
+ <input type="button" value="Log exception" onclick="generateError()" />\r
+ <input type="button" value="Log example object" onclick="generateObjectExpansion()" />\r
+ <br />\r
+ <input type="checkbox" id="enabled" onclick="log4javascript.setEnabled(this.checked)" checked="checked" /> <label for="enabled">logging enabled</label>\r
+ <br />\r
+ <input type="text" id="groupName" value="Group name" />\r
+ <input type="button" value="group" onclick="log.group(document.getElementById('groupName').value)" />\r
+ <input type="button" value="end group" onclick="log.groupEnd()" />\r
+ <br />\r
+ <input type="text" id="timerName" value="Example timer name" />\r
+ <input type="button" value="start timer" onclick="log.time(document.getElementById('timerName').value)" />\r
+ <input type="button" value="end timer" onclick="log.timeEnd(document.getElementById('timerName').value)" />\r
+ </div>\r
+ </div>\r
+ <br class="clear" />\r
+ <div id="log"></div>\r
+ <div id="footer">\r
+ <span class="externallinkinfo">\r
+ <strong>NB.</strong> All external links open in a new window.\r
+ </span>\r
+ Written by Tim Down. <a href="mailto:tim@log4javascript.org">tim@log4javascript.org</a>\r
+ <br />\r
+ log4javascript is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html"\r
+ title="Apache License, Version 2.0 (opens in new window)" target="_blank">Apache License,\r
+ Version 2.0</a>\r
+\r
+ </div>\r
+ </div>\r
+\r
+ </body>\r
+</html>\r