javascript

javascript 로그 보기 .

새로운 도전을 위한 한걸음 2015. 5. 10. 21:55

function test(){
  var asdf = new Object();

  logger.level("debug");  // 레벨 셋팅 방법 . debug , info , warn , error , fatal <-로그레벨 1~5로 셋팅해도됨.

  logger.info(asdf.asdf);
  logger.info("info");
  logger.warn("warn");
  logger.error("error");
  logger.fatal("fatal");
  //alert(loggerText.view("asdf"))
 
  var a1 = new Array();
  var a2 = new Object();
  

 }

 

 

 

var logger={
  
  JSON : this.JSON,
  levNum : 2,
  logLev : {debug : 1 , info : 2, warn : 3 , error : 4 , fatal :5},
  level : function (lev){
   if(!isNaN(lev)) this.levNum = lev;
   else{
    var tmpLev = eval("this.logLev."+lev);
    if(!isNaN(tmpLev)){
     this.levNum = tmpLev;
    }
   }
  },
  debug : function (logData){
   if(this.levNum <= 1){ this.view(logData);
   }
  },
  info : function (logData){
   if(this.levNum <= 2) this.view(logData);
  },
  warn : function (logData){
   if(this.levNum <= 3) this.view(logData);
  },
  error : function (logData){
   if(this.levNum <= 4) this.view(logData);
  },
  fatal : function (logData){
   if(this.levNum <= 5) this.view(logData);
  },
  view : function (logData){
   
   if(typeof this.JSON==="undefined"){
    return false;
   }
   
   var showArea = document.getElementById("showLogViewArea");

   var appendLog = function (pObj , log){
    if (pObj.insertAdjacentText != null) {
     if(showArea !=null){
      pObj.insertAdjacentText("BeforeEnd", log);
     }else{
      pObj.insertAdjacentHTML("BeforeEnd", log);
     }
    }else{
     var df; 
     if(showArea ==null){
       log= document.createTextNode(log);
     }
     var r = pObj.ownerDocument.createRange();
     r.selectNodeContents(pObj);
     r.collapse(false);
     df = r.createContextualFragment(parsedText);
     pObj.appendChild(df);
    }
   }

   var getNowTime = function (){
    var theTime = new Date();
    if(isNaN(theTime)){
     alert("Wrong Time format.\nPlease use this format:\n\tHH:MM:SS");
    }else{
     var HH = theTime.getHours();
     var MM = theTime.getMinutes();
     var SS = theTime.getSeconds();
     if(HH<10) HH = "0"+HH;
     if(MM<10) MM = "0"+MM;
     if(SS<10) SS = "0"+SS;
    }
    return  HH+":"+MM+":"+SS;
   }
   
   var getLogData = function (logData){
    var jsonDataStr="";
    try{
     var tmpEnter = "\r\n";
     
     if(typeof logData ==='object'){

      if(JSON){
       jsonDataStr = getNowTime() +" type : "+ (typeof logData)+" "+JSON.stringify(logData) +tmpEnter ; 
      }
     }else {
      jsonDataStr = getNowTime() +" type : "+ (typeof logData)+" "+logData+tmpEnter ; 
     }
    }catch(e){
     alert(e)
     jsonDataStr = logData;
    }
    return jsonDataStr;
   }
   
   var tmpBody;
   
   try{
    tmpBody = document.getElementsByTagName("body")[0];
   }catch(e){
    alert(e);
    return ;
   }

   if(showArea==null){
    var logObj = "<textarea onblur='this.style.display=\"none\"' style="Z-INDEX: 100; BORDER-BOTTOM: #92d13a 2px solid; POSITION: absolute; BORDER-LEFT: #92d13a 2px solid; WIDTH: 300px; DISPLAY: inline; HEIGHT: 200px; BORDER-TOP: #92d13a 2px solid; TOP: 50px; BORDER-RIGHT: #92d13a 2px solid; LEFT: 0px" id="showLogViewArea" wrap="hard" type="text"></textarea>";
    appendLog(tmpBody , logObj);
    showArea = document.getElementById("showLogViewArea");
    appendLog(showArea , getLogData(logData));
    showArea.focus();
   }else{
    showArea.style.display = "inline";
    appendLog(showArea ,getLogData(logData));
    showArea.focus();
   }
  }
 }