How to quickly and conveniently disable all console.log statements in my code?

后端 未结 28 2597
深忆病人
深忆病人 2020-11-22 16:48

Is there any way to turn off all console.log statements in my JavaScript code, for testing purposes?

28条回答
  •  醉话见心
    2020-11-22 17:38

    I wrote a ES2015 solution ( use only with Webpack ).

    class logger {
      static isEnabled = true;
    
      static enable () {
        if(this.constructor.isEnabled === true){ return; }
    
        this.constructor.isEnabled = true;
      }
    
      static disable () {
        if(this.constructor.isEnabled === false){ return; }
    
        this.constructor.isEnabled = false;
      }
    
      static log () {
        if(this.constructor.isEnabled === false ) { return; }
    
        const copy = [].slice.call(arguments);
    
        window['console']['log'].apply(this, copy);
      }
    
      static warn () {
        if(this.constructor.isEnabled === false ) { return; }
    
        const copy = [].slice.call(arguments);
    
        window['console']['warn'].apply(this, copy);
      }
    
      static error () {
        if(this.constructor.isEnabled === false ) { return; }
    
        const copy = [].slice.call(arguments);
    
        window['console']['error'].apply(this, copy);
      }
    }
    

    Description:

    1. Along with logger.enable and logger.disable you can use console.['log','warn','error'] methods as well using logger class.
    2. By using logger class for displaying, enabling or disabling messages makes the code much cleaner and maintainable.
    3. The code below shows you how to use the logger class:
      • logger.disable() - disable all console messages
      • logger.enable() - enable all console messages
      • logger.log('message1', 'message2') - works exactly like console.log.
      • logger.warn('message1', 'message2') - works exactly like console.warn.
      • logger.error('message1', 'message2') - works exactly like console.error. Happy coding..

提交回复
热议问题