すごく便利なconsoleオブジェクトですが、ブラウザによってサポートされているメソッドが
なかったり、そもそもconsoleオブジェクトが使えなかったりと、たまに不便だったりします。
そんなときによく使う便利なコード。
javascript
var logger = {};
var isDebug = true;
var loggerInit = function(){
var emptyFunc = function(){};
var Err = "undefined";
var e = "assert,cd,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,log,markTimeline,memory,memoryProfile,profile,profileEnd,table,time,timeEnd,timeStamp,timeline,timelineEnd,trace,warn".split(",");
if (typeof console !== Err && isDebug ){
logger = console;
for(var i = 0; i < e.length; i++) {
var method = e[i];
if (typeof logger[method] === Err ) {
if (typeof logger.log === Err ){
logger[method] = emptyFunc;
} else{
logger[method] = logger.log;
}
}
}
} else{
for(var i = 0; i < e.length; i++) {
logger[e[i]] = emptyFunc;
}
}
};
loggerInit();
なにをやってるかっていうのと(簡単な処理ですが)、consoleオブジェクトがない場合に空のfunctionに置き換えて
consoleオブジェクトが存在する場合でも特定のメソッドがない場合に空のfunctionに置き換えてます。
ちなみに「isDebug」をfalseにすると、すべて空functionになるので、console自体が動きません。