src/cm/media/js/lib/yui/yui_3.10.3/build/yui-log-nodejs/yui-log-nodejs.js
changeset 525 89ef5ed3c48b
equal deleted inserted replaced
524:322d0feea350 525:89ef5ed3c48b
       
     1 /*
       
     2 YUI 3.10.3 (build 2fb5187)
       
     3 Copyright 2013 Yahoo! Inc. All rights reserved.
       
     4 Licensed under the BSD License.
       
     5 http://yuilibrary.com/license/
       
     6 */
       
     7 
       
     8 YUI.add('yui-log-nodejs', function (Y, NAME) {
       
     9 
       
    10 var sys = require(process.binding('natives').util ? 'util' : 'sys'),
       
    11     hasColor = false;
       
    12 
       
    13 try {
       
    14     var stdio = require("stdio");
       
    15     hasColor = stdio.isStderrATTY();
       
    16 } catch (ex) {
       
    17     hasColor = true;
       
    18 }
       
    19 
       
    20 Y.config.useColor = hasColor;
       
    21 
       
    22 Y.consoleColor = function(str, num) {
       
    23     if (!this.config.useColor) {
       
    24         return str;
       
    25     }
       
    26     if (!num) {
       
    27         num = '32';
       
    28     }
       
    29     return "\u001b[" + num +"m" + str + "\u001b[0m";
       
    30 };
       
    31 
       
    32 
       
    33 var logFn = function(str, t, m) {
       
    34     var id = '', lvl, mLvl;
       
    35     if (this.id) {
       
    36         id = '[' + this.id + ']:';
       
    37     }
       
    38     t = t || 'info';
       
    39     m = (m) ? this.consoleColor(' (' +  m.toLowerCase() + '):', 35) : '';
       
    40 
       
    41     if (str === null) {
       
    42         str = 'null';
       
    43     }
       
    44 
       
    45     if ((typeof str === 'object') || str instanceof Array) {
       
    46         try {
       
    47             //Should we use this?
       
    48             if (str.tagName || str._yuid || str._query) {
       
    49                 str = str.toString();
       
    50             } else {
       
    51                 str = sys.inspect(str);
       
    52             }
       
    53         } catch (e) {
       
    54             //Fail catcher
       
    55         }
       
    56     }
       
    57 
       
    58     lvl = '37;40';
       
    59     mLvl = ((str) ? '' : 31);
       
    60     t = t+''; //Force to a string..
       
    61     switch (t.toLowerCase()) {
       
    62         case 'error':
       
    63             lvl = mLvl = 31;
       
    64             break;
       
    65         case 'warn':
       
    66             lvl = 33;
       
    67             break;
       
    68         case 'debug':
       
    69             lvl = 34;
       
    70             break;
       
    71     }
       
    72     if (typeof str === 'string') {
       
    73         if (str && str.indexOf("\n") !== -1) {
       
    74             str = "\n" + str;
       
    75         }
       
    76     }
       
    77 
       
    78     // output log messages to stderr
       
    79     sys.error(this.consoleColor(t.toLowerCase() + ':', lvl) + m + ' ' + this.consoleColor(str, mLvl));
       
    80 };
       
    81 
       
    82 if (!Y.config.logFn) {
       
    83     Y.config.logFn = logFn;
       
    84 }
       
    85 
       
    86 
       
    87 
       
    88 }, '3.10.3');