Is there any way to turn off all console.log statements in my JavaScript code, for testing purposes?
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:
logger.disable() - disable all console messageslogger.enable() - enable all console messageslogger.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..