src/cm/media/js/lib/yui/yui_3.10.3/build/yui-log/yui-log.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('yui-log', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Provides console log capability and exposes a custom event for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * console implementations. This module is a `core` YUI module,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * <a href="../classes/YUI.html#method_log">it's documentation is located under the YUI class</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * @module yui
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
 * @submodule yui-log
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
var INSTANCE = Y,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    LOGEVENT = 'yui:log',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    UNDEFINED = 'undefined',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    LEVELS = { debug: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
               info: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
               warn: 4,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
               error: 8 };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * If the 'debug' config is true, a 'yui:log' event will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * dispatched, which the Console widget and anything else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 * can consume.  If the 'useBrowserConsole' config is true, it will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 * write to the browser console if available.  YUI-specific log
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
 * messages will only be present in the -debug versions of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
 * JS files.  The build system is supposed to remove log statements
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
 * from the raw and minified versions of the files.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
 * @method log
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
 * @for YUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
 * @param  {String}  msg  The message to log.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
 * @param  {String}  cat  The log category for the message.  Default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
 *                        categories are "info", "warn", "error", time".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
 *                        Custom categories can be used as well. (opt).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
 * @param  {String}  src  The source of the the message (opt).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
 * @param  {boolean} silent If true, the log event won't fire.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
 * @return {YUI}      YUI instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
INSTANCE.log = function(msg, cat, src, silent) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    var bail, excl, incl, m, f, minlevel,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        Y = INSTANCE,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        c = Y.config,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        publisher = (Y.fire) ? Y : YUI.Env.globalEvents;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    // suppress log message if the config is off or the event stack
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    // or the event call stack contains a consumer of the yui:log event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    if (c.debug) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
        // apply source filters
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
        src = src || "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        if (typeof src !== "undefined") {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
            excl = c.logExclude;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
            incl = c.logInclude;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
            if (incl && !(src in incl)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
                bail = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
            } else if (incl && (src in incl)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
                bail = !incl[src];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
            } else if (excl && (src in excl)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
                bail = excl[src];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
            // Determine the current minlevel as defined in configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
            Y.config.logLevel = Y.config.logLevel || 'debug';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
            minlevel = LEVELS[Y.config.logLevel.toLowerCase()];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            if (cat in LEVELS && LEVELS[cat] < minlevel) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                // Skip this message if the we don't meet the defined minlevel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
                bail = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
        if (!bail) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
            if (c.useBrowserConsole) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
                m = (src) ? src + ': ' + msg : msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                if (Y.Lang.isFunction(c.logFn)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                    c.logFn.call(Y, msg, cat, src);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                } else if (typeof console !== UNDEFINED && console.log) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                    f = (cat && console[cat] && (cat in LEVELS)) ? cat : 'log';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                    console[f](m);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                } else if (typeof opera !== UNDEFINED) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                    opera.postError(m);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
            if (publisher && !silent) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
                if (publisher === Y && (!publisher.getEvent(LOGEVENT))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
                    publisher.publish(LOGEVENT, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
                        broadcast: 2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
                publisher.fire(LOGEVENT, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
                    msg: msg,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
                    cat: cat,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
                    src: src
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    return Y;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
 * Write a system message.  This message will be preserved in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
 * minified and raw versions of the YUI files, unlike log statements.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
 * @method message
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
 * @for YUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
 * @param  {String}  msg  The message to log.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
 * @param  {String}  cat  The log category for the message.  Default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
 *                        categories are "info", "warn", "error", time".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
 *                        Custom categories can be used as well. (opt).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
 * @param  {String}  src  The source of the the message (opt).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
 * @param  {boolean} silent If true, the log event won't fire.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
 * @return {YUI}      YUI instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
INSTANCE.message = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    return INSTANCE.log.apply(INSTANCE, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
}, '3.10.3', {"requires": ["yui-base"]});