The index.html
file that makes use of the
Logger API functionality is listed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <!DOCTYPE html> <html manifest= "manifest.appcache" > <head> <title>Logging API sample</title> <link rel= "stylesheet" href= "../assets/style.css" type= "text/css" media= "all" /> <script type= "text/javascript" > window.onLaunchboxLoaded = function (startCause, willShow) { console.log( 'API Loaded' ); console.log( 'Build: ' + window.launchbox.Container.version); console.log( 'OS: ' + window.launchbox.Container.osName + ' ' + window.launchbox.Container.osVersion); console.log( 'Network: ' + window.launchbox.Container.networkStatus.type); restoreLogLevel(); window.launchbox.SplashScreen.hide(); }; function printText(str) { var d = document.getElementById( 'results' ); d.innerHTML += "<br/>" + str; d.scrollTop = d.scrollHeight; console.log(str); } function clearText() { var d = document.getElementById( 'results' ); d.innerHTML = "" ; } </script> <script src= "main.js" ></script> </head> <body> <header> <h3><span>logging api example</span> </h3> </header> <div class= "title" >This Application demonstrates usage of Logger JavaScript API.</div> <table width= "100%" > <tr> <td width= "50%" style= "border-right: 1px solid;" align= "center" > <div id= "silent" onclick= "setLogLevel('silent');" >SILENT</div> </td> <td width= "50%" align= "center" > <div id= "error" onclick= "setLogLevel('error');" >ERROR</div> </td> </tr> <tr> <td width= "50%" style= "border-right: 1px solid;" align= "center" > <div id= "warning" onclick= "setLogLevel('warning');" >WARNING</div> </td> <td width= "50%" align= "center" > <div id= "info" onclick= "setLogLevel('info');" >INFO</div> </td> </tr> <tr> <td width= "50%" style= "border-right: 1px solid;" align= "center" > <div id= "debug" onclick= "setLogLevel('debug');" >DEBUG</div> </td> <td width= "50%" align= "center" > <div id= "verbose" onclick= "setLogLevel('verbose');" >VERBOSE</div> </td> </tr> </table> <div style= "display: block; padding: 10px;" > <input type= "button" onclick= "setLogToConsole(true);" value= "Turn on logging to console" /> <input type= "button" onclick= "setLogToConsole(false);" value= "Turn off logging to console" /> <input type= "button" onclick= "setLogToFile(true);" value= "Turn on logging to file" /> <input type= "button" onclick= "setLogToFile(false);" value= "Turn off logging to file" /> <input type= "text" id= "txtMaxFileSize" /> <input type= "button" onClick= "setTotalDiskQuota();" value= "Set disk quota (in bytes)" /> <input type= "button" onclick= "readLogTail(10);" value= "Read last 10 log records" /> <input type= "button" onClick= "clearLogs();" value= "Clear log file" /> <input type= "button" onclick= "archiveLogs(new Date(new Date()-24*3600*1000), new Date());" value= "Archive the last day of logs" /> </div> <div style= "padding: 10px;margin-top:-20px;" > <input type= "button" onclick= "clearText();" value= "Clear all text" /> </div> <div id= "results" ></div> </body> </html> |
The contents of the main.js
file containing JavaScript used by the above application are listed below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | function setLogLevel(levelString) { document.getElementById( "silent" ).className = "" ; document.getElementById( "error" ).className = "" ; document.getElementById( "warning" ).className = "" ; document.getElementById( "info" ).className = "" ; document.getElementById( "debug" ).className = "" ; document.getElementById( "verbose" ).className = "" ; document.getElementById(levelString).className = "text-bold" ; var logLevel; if (levelString == "silent" ) { logLevel = window.launchbox.Logger.LogLevel.SILENT; } else if (levelString == "error" ) { logLevel = window.launchbox.Logger.LogLevel.ERROR; } else if (levelString == "warning" ) { logLevel = window.launchbox.Logger.LogLevel.WARNING; } else if (levelString == "info" ) { logLevel = window.launchbox.Logger.LogLevel.INFO; } else if (levelString == "debug" ) { logLevel = window.launchbox.Logger.LogLevel.DEBUG; } else if (levelString == "verbose" ) { logLevel = window.launchbox.Logger.LogLevel.VERBOSE; } window.launchbox.Logger.logLevel = logLevel; printText( "Log level is set to " + levelString); } function restoreLogLevel() { var logLevel = window.launchbox.Logger.logLevel; if (logLevel == window.launchbox.Logger.LogLevel.SILENT) { document.getElementById( "silent" ).className = "text-bold" ; } else if (logLevel == window.launchbox.Logger.LogLevel.ERROR) { document.getElementById( "error" ).className = "text-bold" ; } else if (logLevel == window.launchbox.Logger.LogLevel.WARNING) { document.getElementById( "warning" ).className = "text-bold" ; } else if (logLevel == window.launchbox.Logger.LogLevel.INFO) { document.getElementById( "info" ).className = "text-bold" ; } else if (logLevel == window.launchbox.Logger.LogLevel.VERBOSE) { document.getElementById( "verbose" ).className = "text-bold" ; } } function setLogToConsole(shouldLogToConsole) { window.launchbox.Logger.logToConsole = shouldLogToConsole; printText( "Log to console is set to " + shouldLogToConsole); } function setLogToFile(shouldLogToFile) { window.launchbox.Logger.logToFile = shouldLogToFile; printText( "Log to file is set to " + shouldLogToFile); } function setTotalDiskQuota() { var txtMaxSize = document.getElementById( "txtMaxFileSize" ); var maxSize; if (isNaN(txtMaxSize.value)) { maxSize = 20 * 1024 * 1024; // 20MB } else { maxSize = parseInt(txtMaxSize.value); } window.launchbox.Logger.totalDiskQuota = maxSize; printText( "Disk quota for storing logs is set to " + maxSize + " B" ); } function readLogTail(recordCount) { window.launchbox.Logger.readLogTail(recordCount, function (logs) { printText( "Requested " + recordCount + " last log records, received: " + logs.length); for ( var i = 0; i < logs.length; i++) { printText(logs[i]); } }); } function clearLogs() { printText( "Clearing log file" ); window.launchbox.Logger.clearLogFile(); } function archiveLogs(fromDate, toDate) { window.launchbox.Logger.archiveLogs(fromDate, toDate, function (logsURL, error) { printText( "== Archived logs at " + logsURL); window.resolveLocalFileSystemURL(logsURL, function (entry) { entry.file( function (file) { var reader = new FileReader(); reader.onload = function (event) { printText( "== Archive file contents ==\n" + reader.result + "\n==\n" ); }; reader.readAsText(file); }); }); }); } |
The contents of the cache manifest file called manifest.appcache
for
this application are listed below:
1 2 3 4 5 6 7 | CACHE MANIFEST CACHE: index.html NETWORK: * |
The webapp-descriptor.xml
file for this application is defined in the
following way:
1 2 3 4 5 6 7 | <? xml version = "1.0" encoding = "UTF-8" ?> < webapp-descriptor xmlns="http://www.pega.com/application-hosting/ web-app-descriptor/2.0"> < id >com.pega.sample.Logger</ id > < version >1.0.0</ version > < name >Sample Logger api usage</ name > </ webapp-descriptor > |