How to disable log4j logging from Java code

前端 未结 8 1638
难免孤独
难免孤独 2021-02-07 13:58

I use a legacy library that writes logs using log4j. My default log4j.properties file directs the log to the console, but in some specific functions of my main program, I would

8条回答
  •  温柔的废话
    2021-02-07 14:40

    So, you have 3 loggers defined, including the root:

    log4j.rootLogger=warn, stdout
    log4j.logger.ac.biu.nlp.nlp.engineml=info, logfile
    log4j.logger.org.BIU.utils.logging.ExperimentLogger=warn
    

    Unfortunately, to disable them programatically, you need to specify ALL OF THEM in the code:

    Logger.getLogger("ac.biu.nlp.nlp.engineml").setLevel(Level.OFF);
    Logger.getLogger("org.BIU.utils.logging.ExperimentLogger").setLevel(Level.OFF);
    Logger.getRootLogger().setLevel(Level.OFF);
    

    Here's how to reset it back to what's set in the config file.

提交回复
热议问题