I would like to be able to tell the JVM to stop logging certain level of messages at some point in the execution chain. At some point I want to only log messages with SEVERE level, so I was thinking of doing this:
for(Enumeration loggerNames = logManager.getLoggerNames(); loggerNames.hasMoreElements();){
String name = loggerNames.nextElement();
Logger nextLogger = logManager.getLogger(name);
if(nextLogger != null)
nextLogger.setLevel(Level.SEVERE);
}
Is there a cleaner way to achieve the same logic i.e. set a global variable that would stop printing to log unless SEVERE? I need to distinguish between Console output (in test) and file output in live, so I could potentially set these level on the handler (console and File)?
解决方案
ANSWERING MY OWN QUESTION:
This is exactly what I needed:
Handler[] handlers =
Logger.getLogger( "" ).getHandlers();
for ( int index = 0; index < handlers.length; index++ ) {
handlers[index].setLevel( Level.SEVERE);
}