123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <!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>
|