119 lines
3.4 KiB
HTML
119 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!--
|
|
Copyright 2007 The Closure Library Authors. All Rights Reserved.
|
|
|
|
Use of this source code is governed by the Apache License, Version 2.0.
|
|
See the COPYING file for details.
|
|
-->
|
|
<head>
|
|
<title>Debug</title>
|
|
<script type="text/javascript" src="../base.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
|
|
goog.require('goog.debug');
|
|
goog.require('goog.debug.FancyWindow');
|
|
goog.require('goog.log');
|
|
/**
|
|
* Person - a sample person object.
|
|
* @param {string} name The name
|
|
* @param {number} age The age
|
|
*/
|
|
var Person = function(name, age) {
|
|
this.name_ = name;
|
|
this.age_ = age;
|
|
this.address_ = null;
|
|
this.kids_ = [];
|
|
|
|
/**
|
|
* Set the address.
|
|
* @param {string} address The address to set
|
|
*/
|
|
this.setAddress = function(address) {
|
|
this.address_ = address;
|
|
}
|
|
|
|
/**
|
|
* Add a child.
|
|
* @param {Object} child The child to add
|
|
*/
|
|
this.addChild = function(child) {
|
|
this.kids_.push(child);
|
|
}
|
|
|
|
/**
|
|
* Create a string representation of the object.
|
|
* @return {string} The object as a string
|
|
*/
|
|
this.toString = function() {
|
|
return 'Person name: ' + this.name_ + ' Age: ' + this.age_;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Demonstrate the debug options.
|
|
*/
|
|
var demoDebug = function() {
|
|
// Create the debug window.
|
|
var debugWindow = new goog.debug.FancyWindow('main');
|
|
debugWindow.setEnabled(true);
|
|
debugWindow.init();
|
|
|
|
// Create a logger.
|
|
var theLogger = goog.log.getLogger('demo');
|
|
goog.log.info(theLogger, 'Logging examples');
|
|
|
|
// Create a simple object.
|
|
var someone = {'name': 'joe',
|
|
'age': 33,
|
|
'gender': 'm',
|
|
'kids': ['jen', 'sam', 'oliver'],
|
|
'address': '233 Great Road, Axtonhammer, MD'};
|
|
|
|
// Show the object, note that it will output '[object Object]'.
|
|
goog.log.info(theLogger, someone);
|
|
// Use expose to walk through the object and show all data.
|
|
goog.log.info(theLogger, 'Person: '+ goog.debug.expose(someone));
|
|
|
|
// Now create a Person object to demonstrate expose w/functions.
|
|
var pObj = new Person('fred', 2);
|
|
// Add a child, and an address.
|
|
pObj.addChild(someone);
|
|
pObj.setAddress('1 broadway, ny, ny');
|
|
|
|
// The toString will be called.
|
|
goog.log.info(theLogger, 'toString: '+ pObj);
|
|
// Does not show the functions by default.
|
|
goog.log.info(theLogger, 'expose (no functions): ' + goog.debug.expose(pObj));
|
|
// You can specify false if you really want to.
|
|
goog.log.info(theLogger, 'expose (no functions): ' + goog.debug.expose(pObj, false));
|
|
// Shows the functions as well.
|
|
goog.log.info(theLogger, 'expose (w/functions): ' + goog.debug.expose(pObj, true));
|
|
|
|
// Show deepExpose, which walks recursively through data.
|
|
goog.log.info(theLogger, 'deepExpose (no functions): '+ goog.debug.deepExpose(pObj));
|
|
// You can specify false if you really want to.
|
|
goog.log.info(theLogger, 'deepExpose (no functions): '+
|
|
goog.debug.deepExpose(pObj, false));
|
|
goog.log.info(theLogger, 'deepExpose (w/functions): '+
|
|
goog.debug.deepExpose(pObj, true));
|
|
|
|
goog.log.log(theLogger, goog.log.Level.SHOUT, 'shout');
|
|
goog.log.error(theLogger, 'severe');
|
|
goog.log.warning(theLogger, 'warning');
|
|
goog.log.info(theLogger, 'info');
|
|
goog.log.fine(theLogger, 'fine');
|
|
}
|
|
|
|
|
|
</script>
|
|
<body>
|
|
Look in the log window for debugging examples.
|
|
</body>
|
|
<script>
|
|
// Call the demo method.
|
|
demoDebug();
|
|
</script>
|
|
</html>
|