In log4js 5.3.0 (not sure how many versions back it's the same) you can do this by turning everything off temporarily at the root logger, which affects every other logger:
log4js.getLogger().level = 'off';
A full example:
#!/bin/env node
const log4js = require('log4js');
log4js.configure({
appenders: {
out: { type: "stdout" }
},
categories: {
default: {
appenders: [ "out" ],
level: "info"
}
}
});
const rootLogger = log4js.getLogger();
const log = log4js.getLogger('foo');
log.info('this is on - turning off');
rootLogger.level = 'off';
log.info('this is off - turning back on');
rootLogger.level = 'info';
log.info('this is back on');
Which gives you:
[2019-11-13T22:00:37.541] [INFO] foo - this is on - turning off
[2019-11-13T22:00:37.544] [INFO] foo - this is back on
By default, log4js will not output any logs (so that it can safely be used in libraries).. Do you have any code that configures log4js in your own project?