生產環境清空log日誌

方法一:

if (process.env.NODE_ENV == 'production') {
  var logDebug = false;
  console.log = (function (oriLogFunc) {
    return function () {
      if (logDebug) {
        oriLogFunc.apply(this, arguments);
      }
    }
  })(console.log);
  document.addEventListener("contextmenu", function () {
    window.event.returnValue = false;
    return false;
  })
}

方法二:

 重寫console.log方法,使其失去 輸出能力

這個最直接有效,用vue框架的話放在main.js中或者index.html中即可。多頁面的話可以放在一個全局js中。缺點:有時候捕獲的錯誤是想打印出來的,結果也被屏蔽了。

console.log = function () {};

  改進版

var log = console.log; // 不屏蔽

var log1 = function () {}; // 屏蔽

console.log = function () {

  if(arguments[0] instanceof Error){

    log(...arguments);

  }else{

    log1(...arguments);

  }

}

 

開發的時候可以改成這樣,先將console.log賦值給log變量,後面使用的時候用log輸出,上線的時候只需要將log函數改寫成一個空函數就可以了。而上線後像仍需要打印的用console.log輸出。這樣就可以有選擇的屏蔽和輸出了

let log = console.log; // 平時開發用這個,寫法簡單,上線時替換成下一行就屏蔽掉了

// let log = function () {}; // 上線時改成這個屏蔽輸出


// 例如:

log("暫時打印使用這個函數,寫法簡單,後期還能屏蔽掉");

console.log("不想屏蔽的輸出,例如捕獲的錯誤等");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章