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:
-
e
EventCustom event for the attribute change
_afterConsoleLimitChange
-
e
Calls this._trimOldEntries() in response to changes in the configured consoleLimit attribute.
Parameters:
-
e
EventCustom event for the attribute change
_afterPausedChange
-
e
Updates the UI and schedules or cancels the print loop.
Parameters:
-
e
EventCustom event for the attribute change
_afterStringsChange
-
e
Updates the UI if changes are made to any of the strings in the strings attribute.
Parameters:
-
e
EventCustom event for the attribute change
_afterVisibleChange
-
e
Makes adjustments to the UI if needed when the Console is hidden or shown
Parameters:
-
e
Eventthe visibleChange event
_cancelPrintLoop
()
protected
Clears the timeout for printing buffered messages.
_createEntryHTML
-
m
Translates message meta into the markup for a console entry.
Parameters:
-
m
Objectobject literal containing normalized message metadata
Returns:
_defEntryFn
-
e
Buffers incoming message objects and schedules the printing.
Parameters:
-
e
EventThe 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:
-
s
Stringthe 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:
-
m
Objectthe 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:
-
e
Eventcustom event containing the log message
Returns:
_onClearClick
-
e
Event handler for clicking on the Clear button. Pass-through to
this.clearConsole()
.
Parameters:
-
e
EventDOM event facade for the click event
_onCollapseClick
-
e
Event handler for clicking on the Collapse/Expand button. Sets the "collapsed" attribute accordingly.
Parameters:
-
e
EventDOM 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:
-
e
EventDOM 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:
-
v
Stringthe 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:
-
v
Booleanfalse 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:
-
v
Booleantrue for collapsed, false for expanded
_uiUpdateFromHideShow
-
v
Recalculates dimensions and updates appropriately when shown
Parameters:
-
v
Booleantrue for visible, false for hidden
_uiUpdatePaused
-
on
Checks or unchecks the paused checkbox
Parameters:
-
on
Booleanthe new checked state
_validateLogSource
-
v
Validator for logSource attribute.
Parameters:
-
v
Objectthe desired logSource
Returns:
on
method
_validateStyle
-
style
Validates input value for style attribute. Accepts only values 'inline', 'block', and 'separate'.
Parameters:
-
style
Stringthe 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:
-
arg
MIXED 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:
-
limit
Number(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.Lang.sub. 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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 use
d 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
e
EventFacadeAn 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:
-
event
Event.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:
-
event
Event.FacadeEvent Facade object