Merge pull request #1506 from broadinstitute/rhl_set_htsjdk_log_level

Set HTSJDK log level
This commit is contained in:
Ron Levine 2016-11-15 10:14:17 -05:00 committed by GitHub
commit aac5f55bbe
1 changed files with 23 additions and 9 deletions

View File

@ -25,6 +25,7 @@
package org.broadinstitute.gatk.utils.commandline; package org.broadinstitute.gatk.utils.commandline;
import htsjdk.samtools.util.Log;
import org.apache.log4j.FileAppender; import org.apache.log4j.FileAppender;
import org.apache.log4j.Level; import org.apache.log4j.Level;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
@ -279,30 +280,43 @@ public abstract class CommandLineProgram {
} }
/** /**
* this function takes the logger level passed in on the command line and uses it to set the level of the logger * This function takes the logger level passed in on the command line and uses it to set the level of the GATK and HTSJDK loggers.
* Caveat: The HTSJDK logger level can only be set to DEBUG, INFO, WARN or ERROR. A command line FATAL or OFF will set the HTSJDK logger level to ERROR.
*
* @throws ArgumentException if the logging level is not valid (DEBUG, INFO, WARN, ERROR, FATAL, OFF) * @throws ArgumentException if the logging level is not valid (DEBUG, INFO, WARN, ERROR, FATAL, OFF)
*/ */
private void setupLoggerLevel() { private void setupLoggerLevel() {
// set the default logger level // set the default logger level
Level par; Level gatkLevel;
Log.LogLevel htsjdkLevel;
if (logging_level.toUpperCase().equals("DEBUG")) { if (logging_level.toUpperCase().equals("DEBUG")) {
par = Level.DEBUG; gatkLevel = Level.DEBUG;
htsjdkLevel = Log.LogLevel.DEBUG;
} else if (logging_level.toUpperCase().equals("INFO")) { } else if (logging_level.toUpperCase().equals("INFO")) {
par = Level.INFO; gatkLevel = Level.INFO;
htsjdkLevel = Log.LogLevel.INFO;
} else if (logging_level.toUpperCase().equals("WARN")) { } else if (logging_level.toUpperCase().equals("WARN")) {
par = Level.WARN; gatkLevel = Level.WARN;
htsjdkLevel = Log.LogLevel.WARNING;
} else if (logging_level.toUpperCase().equals("ERROR")) { } else if (logging_level.toUpperCase().equals("ERROR")) {
par = Level.ERROR; gatkLevel = Level.ERROR;
htsjdkLevel = Log.LogLevel.ERROR;
} else if (logging_level.toUpperCase().equals("FATAL")) { } else if (logging_level.toUpperCase().equals("FATAL")) {
par = Level.FATAL; gatkLevel = Level.FATAL;
htsjdkLevel = Log.LogLevel.ERROR;
} else if (logging_level.toUpperCase().equals("OFF")) { } else if (logging_level.toUpperCase().equals("OFF")) {
par = Level.OFF; gatkLevel = Level.OFF;
htsjdkLevel = Log.LogLevel.ERROR;
} else { } else {
// we don't understand the logging level, let's get out of here // we don't understand the logging level, let's get out of here
throw new ArgumentException("Unable to match: " + logging_level + " to a logging level, make sure it's a valid level (DEBUG, INFO, WARN, ERROR, FATAL, OFF)"); throw new ArgumentException("Unable to match: " + logging_level + " to a logging level, make sure it's a valid level (DEBUG, INFO, WARN, ERROR, FATAL, OFF)");
} }
Logger.getRootLogger().setLevel(par); // Set GATK log level
Logger.getRootLogger().setLevel(gatkLevel);
// Set HTSJDK log level
Log.setGlobalLogLevel(htsjdkLevel);
} }
public static String getVersionNumber() { public static String getVersionNumber() {