Console Class
Console creates a visualization for messages logged through calls to a YUI
instance's Y.log( message, category, source ) method.  The
debug versions of YUI modules will include logging statements to offer some
insight into the steps executed during that module's operation.  Including
log statements in your code will cause those messages to also appear in the
Console.  Use Console to aid in developing your page or application.
Entry categories "info", "warn", and "error" are also referred to as the log level, and entries are filtered against the configured logLevel.
Item Index
Methods
- _afterCollapsedChange
- _afterConsoleLimitChange
- _afterPausedChange
- _afterStringsChange
- _afterVisibleChange
- _cancelPrintLoop
- _createEntryHTML
- _defEntryFn
- _defResetFn
- _encodeHTML
- _getUseBrowserConsole
- _htmlEscapeMessage
- _initBody
- _initFoot
- _initHead
- _isInLogLevel
- _normalizeMessage
- _onClearClick
- _onCollapseClick
- _onLogEvent
- _onPauseClick
- _schedulePrint
- _setLogLevel
- _setUseBrowserConsole
- _trimOldEntries
- _uiSetHeight
- _uiSizeCB
- _uiUpdateCollapsed
- _uiUpdateFromHideShow
- _uiUpdatePaused
- _validateLogSource
- _validateStyle
- bindUI
- clearConsole
- collapse
- destructor
- expand
- initializer
- log
- printBuffer
- renderUI
- reset
- scrollToLatest
- syncUI
Properties
- _body
- _evtCat
- _foot
- _head
- _printLoop
- ATTRS static
- BODY_TEMPLATE static
- buffer
- CHROME_CLASSES static
- ENTRY_CLASSES static
- ENTRY_TEMPLATE static
- FOOTER_TEMPLATE static
- HEADER_TEMPLATE static
- LOG_LEVEL_ERROR static
- LOG_LEVEL_INFO static
- LOG_LEVEL_WARN static
- NAME static
Attributes
Methods
_afterCollapsedChange
    
        - 
                    
                        e
Updates the className of the contentBox, which should trigger CSS to hide or show the body and footer sections depending on the new value.
Parameters:
- 
                    
                        eEventCustom event for the attribute change 
_afterConsoleLimitChange
    
        - 
                    
                        e
Calls this._trimOldEntries() in response to changes in the configured consoleLimit attribute.
Parameters:
- 
                    
                        eEventCustom event for the attribute change 
_afterPausedChange
    
        - 
                    
                        e
Updates the UI and schedules or cancels the print loop.
Parameters:
- 
                    
                        eEventCustom event for the attribute change 
_afterStringsChange
    
        - 
                    
                        e
Updates the UI if changes are made to any of the strings in the strings attribute.
Parameters:
- 
                    
                        eEventCustom event for the attribute change 
_afterVisibleChange
    
        - 
                    
                        e
Makes adjustments to the UI if needed when the Console is hidden or shown
Parameters:
- 
                    
                        eEventthe visibleChange event 
_cancelPrintLoop
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Clears the timeout for printing buffered messages.
_createEntryHTML
    
        - 
                    
                        m
Translates message meta into the markup for a console entry.
Parameters:
- 
                    
                        mObjectobject literal containing normalized message metadata 
Returns:
_defEntryFn
    
        - 
                    
                        e
Buffers incoming message objects and schedules the printing.
Parameters:
- 
                    
                        eEventThe Custom event carrying the message in its payload 
_defResetFn
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Clears the console, resets the startTime attribute, enables and unpauses the widget.
_encodeHTML
    
        - 
                    
                        s
Returns the input string with ampersands (&), <, and > encoded as HTML entities.
Parameters:
- 
                    
                        sStringthe raw string 
Returns:
_getUseBrowserConsole
    
        ()
    
    
        
            Boolean
        
    
    
    
        protected
    
    
    
    
    
    Getter method for useBrowserConsole attribute. Just a pass through to the YUI instance configuration setting.
Returns:
_htmlEscapeMessage
    
        - 
                    
                        m
Performs HTML escaping on strings in the message object.
Parameters:
- 
                    
                        mObjectthe normalized message object 
Returns:
_initBody
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Create the DOM structure for the console body—where messages are rendered.
_initFoot
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Create the DOM structure for the footer elements.
_initHead
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Create the DOM structure for the header elements.
_isInLogLevel
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Determine if incoming log messages are within the configured logLevel to be buffered for printing.
_normalizeMessage
    
        - 
                    
                        e
Create a log entry message from the inputs including the following keys:
- time - this moment
- message - leg message
- category - logLevel or custom category for the message
- source - when provided, the widget or util calling Y.log
- sourceAndDetail - same as source but can include instance info
- localTime - readable version of time
- elapsedTime - ms since last entry
- totalTime - ms since Console was instantiated or reset
Parameters:
- 
                    
                        eEventcustom event containing the log message 
Returns:
_onClearClick
    
        - 
                    
                        e
Event handler for clicking on the Clear button.  Pass-through to
this.clearConsole().
Parameters:
- 
                    
                        eEventDOM event facade for the click event 
_onCollapseClick
    
        - 
                    
                        e
Event handler for clicking on the Collapse/Expand button. Sets the "collapsed" attribute accordingly.
Parameters:
- 
                    
                        eEventDOM event facade for the click event 
_onLogEvent
    
        - 
                    
                        msg
- 
                    
                        cat
- 
                    
                        src
Responds to log events by normalizing qualifying messages and passing them along through the entry event for buffering etc.
_onPauseClick
    
        - 
                    
                        e
Event handler for clicking on the Pause checkbox to update the paused attribute.
Parameters:
- 
                    
                        eEventDOM event facade for the click event 
_schedulePrint
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Sets an interval for buffered messages to be output to the console.
_setLogLevel
    
        - 
                    
                        v
Setter method for logLevel attribute. Acceptable values are "error", "warn", and "info" (case insensitive). Other values are treated as "info".
Parameters:
- 
                    
                        vStringthe desired log level 
Returns:
_setUseBrowserConsole
    
        - 
                    
                        v
Setter method for useBrowserConsole attributes. Only functional if the logSource attribute points to a YUI instance. Passes the value down to the YUI instance. NOTE: multiple Console instances cannot maintain independent useBrowserConsole values, since it is just a pass through to the YUI instance configuration.
Parameters:
- 
                    
                        vBooleanfalse to disable browser console printing (default) 
Returns:
_trimOldEntries
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Removes the oldest message entries from the UI to maintain the limit specified in the consoleLimit configuration.
_uiSetHeight
    
        - 
                    
                        v
Set the height of the Console container. Set the body height to the difference between the configured height and the calculated heights of the header and footer. Overrides Widget.prototype._uiSetHeight.
_uiSizeCB
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Over-ride default content box sizing to do nothing, since we're sizing the body section to fill out height ourselves.
_uiUpdateCollapsed
    
        - 
                    
                        v
Updates the UI to reflect the new Collapsed state
Parameters:
- 
                    
                        vBooleantrue for collapsed, false for expanded 
_uiUpdateFromHideShow
    
        - 
                    
                        v
Recalculates dimensions and updates appropriately when shown
Parameters:
- 
                    
                        vBooleantrue for visible, false for hidden 
_uiUpdatePaused
    
        - 
                    
                        on
Checks or unchecks the paused checkbox
Parameters:
- 
                    
                        onBooleanthe new checked state 
_validateLogSource
    
        - 
                    
                        v
Validator for logSource attribute.
Parameters:
- 
                    
                        vObjectthe desired logSource 
Returns:
on
                  method
                
            _validateStyle
    
        - 
                    
                        style
Validates input value for style attribute. Accepts only values 'inline', 'block', and 'separate'.
Parameters:
- 
                    
                        styleStringthe proposed value 
Returns:
bindUI
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Set up event listeners to wire up the UI to the internal state.
clearConsole
    
        ()
    
    
    
    
    
    
    
        chainable
    
    
    Clear the console of messages and flush the buffer of pending messages.
collapse
    
        ()
    
    
    
    
    
    
    
        chainable
    
    
    Collapses the body and footer.
destructor
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Tears down the instance, flushing event subscriptions and purging the UI.
expand
    
        ()
    
    
    
    
    
    
    
        chainable
    
    
    Expands the body and footer if collapsed.
initializer
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Constructor code. Set up the buffer and entry template, publish internal events, and subscribe to the configured logEvent.
log
    
        - 
                    
                        arg
Wrapper for Y.log.
Parameters:
- 
                    
                        argMIXED multiple(all arguments passed through to Y.log)
printBuffer
    
        - 
                    
                        limit
Outputs buffered messages to the console UI. This is typically called from a scheduled interval until the buffer is empty (referred to as the print loop). The number of buffered messages output to the Console is limited to the number provided as an argument. If no limit is passed, all buffered messages are rendered.
Parameters:
- 
                    
                        limitNumber(optional) max number of buffered entries to write 
renderUI
    
        ()
    
    
    
    
        protected
    
    
    
    
    
    Generate the Console UI.
reset
    
        ()
    
    
    
    
    
    
    
        chainable
    
    
    Clears the console and resets internal timers.
scrollToLatest
    
        ()
    
    
    
    
    
    
    
        chainable
    
    
    Scrolls to the most recent entry
syncUI
    
        ()
    
    
    
    
    
    
    
    
    Sync the UI state to the current attribute state.
Properties
_body
    Node
    
    
        protected
    
    
    
    
    Reference to the Node instance that will house the console messages.
Default: null
_evtCat
    String
    
    
        protected
    
    
    
    
    Category to prefix all event subscriptions to allow for ease of detach during destroy.
_printLoop
    Object
    
    
        protected
    
    
    
    
    Holds the object API returned from Y.later for the print
loop interval.
Default: null
ATTRS
    Object
    
    
    
    
        static
    
    
    Static property used to define the default attribute configuration of the Widget.
BODY_TEMPLATE
    String
    
    
    
    
        static
    
    
    Markup template used to generate the DOM structure for the Console body (where the messages are inserted) when it is rendered. The template includes only the {placeholder} "consolebdclass", which is constributed by Console.CHROME_CLASSES.
CHROME_CLASSES
    Object
    
    
    
    
        static
    
    
    Map (object) of classNames used to populate the placeholders in the Console.HEADERTEMPLATE, Console.BODYTEMPLATE, and Console.FOOTER_TEMPLATE markup when rendering the Console UI.
By default, the keys contained in the object are:
- console_hd_class
- console_bd_class
- console_ft_class
- console_controls_class
- console_checkbox_class
- console_pause_class
- console_pause_label_class
- console_button_class
- console_clear_class
- console_collapse_class
- console_title_class
ENTRY_CLASSES
    Object
    
    
    
    
        static
    
    
    Map (object) of classNames used to populate the placeholders in the Console.ENTRY_TEMPLATE markup when rendering a new Console entry.
By default, the keys contained in the object are:
- entry_class
- entry_meta_class
- entry_cat_class
- entry_src_class
- entry_time_class
- entry_content_class
ENTRY_TEMPLATE
    String
    
    
    
    
        static
    
    
    Default markup template used to create the DOM structure for Console entries. The markup contains {placeholder}s for content and classes that are replaced via Y.substitute. The default template contains the {placeholder}s identified in Console.ENTRY_CLASSES as well as the following placeholders that will be populated by the log entry data:
- cat_class
- src_class
- totalTime
- elapsedTime
- localTime
- sourceAndDetail
- message
FOOTER_TEMPLATE
    String
    
    
    
    
        static
    
    
    Markup template used to generate the DOM structure for the footer section of the Console when it is rendered. The template includes many of the {placeholder}s from Console.CHROME_CLASSES as well as:
- id_guid - generated unique id, relates the label and checkbox
- str_pause - pulled from attribute strings.pause
- str_clear - pulled from attribute strings.clear
HEADER_TEMPLATE
    String
    
    
    
    
        static
    
    
    Markup template used to generate the DOM structure for the header section of the Console when it is rendered. The template includes these {placeholder}s:
- console_button_class - contributed by Console.CHROME_CLASSES
- console_collapse_class - contributed by Console.CHROME_CLASSES
- console_hd_class - contributed by Console.CHROME_CLASSES
- console_title_class - contributed by Console.CHROME_CLASSES
- str_collapse - pulled from attribute strings.collapse
- str_title - pulled from attribute strings.title
LOG_LEVEL_ERROR
    String
    
    
    
    
        static
    
    
    Static identifier for logLevel configuration setting to allow only incoming messages of logLevel "error" to generate Console entries.
LOG_LEVEL_INFO
    String
    
    
    
    
        static
    
    
    Static identifier for logLevel configuration setting to allow all incoming messages to generate Console entries.
LOG_LEVEL_WARN
    String
    
    
    
    
        static
    
    
    Static identifier for logLevel configuration setting to allow only incoming messages of logLevel "warn" or "error" to generate Console entries.
Attributes
collapsed
    Boolean
    
    
    
    
    
    Controls the collapsed state of the Console
Default: false
Fires event collapsedChange
            
            Fires when the value for the configuration attribute collapsed is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
consoleLimit
    Number
    
    
    
    
    
    Maximum number of Console entries allowed in the Console body at one time. This is used to keep acquired messages from exploding the DOM tree and impacting page performance.
Default: 300
Fires event consoleLimitChange
            
            Fires when the value for the configuration attribute consoleLimit is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
defaultCategory
    String
    
    
    
    
    
    If a category is not specified in the Y.log(..) statement, this category will be used. Categories "info", "warn", and "error" are also called log level.
Default: "info"
Fires event defaultCategoryChange
            
            Fires when the value for the configuration attribute defaultCategory is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
defaultSource
    String
    
    
    
    
    
    If a source is not specified in the Y.log(..) statement, this source will be used.
Default: "global"
Fires event defaultSourceChange
            
            Fires when the value for the configuration attribute defaultSource is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
entryTemplate
    String
    
    
    
    
    
    Markup template used to create the DOM structure for Console entries.
Default: Console.ENTRY_TEMPLATE
Fires event entryTemplateChange
            
            Fires when the value for the configuration attribute entryTemplate is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
height
    String | Number
    
    
    
    
    
    String with units, or number, representing the height of the Console, inclusive of header and footer. If a number is provided, the default unit, defined by Widget's DEF_UNIT, property is used.
Default: "300px"
Fires event heightChange
            
            Fires when the value for the configuration attribute height is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
lastTime
    Date
    
    
    
    
    
    The precise time the last entry was logged. Used to measure elapsed time between log messages.
Default: The moment the console module is <code>use</code>d
Fires event lastTimeChange
            
            Fires when the value for the configuration attribute lastTime is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
logEvent
    String
    
    
    
    
    
    Name of the custom event that will communicate log messages.
Default: "yui:log"
Fires event logEventChange
            
            Fires when the value for the configuration attribute logEvent is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
logLevel
    String
    
    
    
    
    
    Minimum entry log level to render into the Console. The initial logLevel value for all Console instances defaults from the Y.config.logLevel YUI configuration, or Console.LOGLEVELINFO if that configuration is not set.
Possible values are "info", "warn", "error" (case insensitive), or their corresponding statics Console.LOGLEVELINFO and so on.
Default: Y.config.logLevel or Console.LOG_LEVEL_INFO
Fires event logLevelChange
            
            Fires when the value for the configuration attribute logLevel is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
logSource
    EventTarget
    
    
    
    
    
    Object that will emit the log events. By default the YUI instance. To have a single Console capture events from all YUI instances, set this to the Y.Global object.
Default: Y
Fires event logSourceChange
            
            Fires when the value for the configuration attribute logSource is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
newestOnTop
    Boolean
    
    
    
    
    
    New entries should display at the top of the Console or the bottom?
Default: true
Fires event newestOnTopChange
            
            Fires when the value for the configuration attribute newestOnTop is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
paused
    Boolean
    
    
    
    
    
    Boolean to pause the outputting of new messages to the console. When paused, messages will accumulate in the buffer.
Default: false
Fires event pausedChange
            
            Fires when the value for the configuration attribute paused is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
printLimit
    Number
    
    
    
    
    
    Maximum number of entries printed in each iteration of the print loop. This is used to prevent excessive logging locking the page UI.
Default: 50
Fires event printLimitChange
            
            Fires when the value for the configuration attribute printLimit is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
printTimeout
    Number
    
    
    
    
    
    Millisecond timeout between iterations of the print loop, moving entries from the buffer to the UI.
Default: 100
Fires event printTimeoutChange
            
            Fires when the value for the configuration attribute printTimeout is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
scrollIntoView
    Boolean
    
    
    
    
    
    When new entries are added to the Console UI, should they be scrolled into view?
Default: true
Fires event scrollIntoViewChange
            
            Fires when the value for the configuration attribute scrollIntoView is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
startTime
    Date
    
    
    
    
    
    The baseline time for this Console instance, used to measure elapsed
time from the moment the console module is used to the
moment each new entry is logged (not rendered).
This value is reset by the instance method myConsole.reset().
Default: The moment the console module is <code>use</code>d
Fires event startTimeChange
            
            Fires when the value for the configuration attribute startTime is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
strings
    Object
    
    
    
    
    
    Collection of strings used to label elements in the Console UI. Default collection contains the following name:value pairs:
- title : "Log Console"
- pause : "Pause"
- clear : "Clear"
- collapse : "Collapse"
- expand : "Expand"
Fires event stringsChange
            
            Fires when the value for the configuration attribute strings is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
style
    String
    
    
    
    
    
    Allows the Console to flow in the document. Available values are 'inline', 'block', and 'separate' (the default).
Default: 'separate'
Fires event styleChange
            
            Fires when the value for the configuration attribute style is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
useBrowserConsole
    Boolean
    
    
    
    
    
    Pass through to the YUI instance useBrowserConsole configuration. By default this is set to false, which will disable logging to the browser console when a Console instance is created. If the logSource is not a YUI instance, this has no effect.
Default: false
Fires event useBrowserConsoleChange
            
            Fires when the value for the configuration attribute useBrowserConsole is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
width
    String | Number
    
    
    
    
    
    String with units, or number, representing the width of the Console. If a number is provided, the default unit, defined by Widget's DEF_UNIT, property is used.
Default: "300px"
Fires event widthChange
            
            Fires when the value for the configuration attribute width is
            changed. You can listen for the event using the on method if you
            wish to be notified before the attribute's value has changed, or
            using the after method if you wish to be notified after the
            attribute's value has changed.
            
Parameters:
- 
                        eEventFacadeAn Event Facade object with the following attribute-specific properties added:
Events
entry
    
    
    
    
    
    
    Transfers a received message to the print loop buffer. Default behavior defined in _defEntryFn.
Event Payload:
- 
                    
                        eventEvent.FacadeAn Event Facade object with the following attribute specific properties added: - message
- The message data normalized into an object literal (see _normalizeMessage)
 
reset
    
    
    
    
    
    
    Triggers the reset behavior via the default logic in _defResetFn.
Event Payload:
- 
                    
                        eventEvent.FacadeEvent Facade object 
