/** * Sets logging levels for Jack internals which is useful when debugging Jack issues. This will * set appropriate logging level per namespace. * <p>N.B. This is not an ideal solution, but until Jack exposes API, * we need to set it this way. */ private static void setJackLogLevels(@NonNull JackProcessOptions options) { Map<String, Level> namespaceToLevel; if (options.isDebugJackInternals()) { namespaceToLevel = ImmutableMap.of("", Level.FINE, "com.android.sched", Level.WARNING); } else { namespaceToLevel = ImmutableMap.of("", Level.SEVERE); } LogManager logManager = LogManager.getLogManager(); Enumeration<String> loggerNames = logManager.getLoggerNames(); while (loggerNames.hasMoreElements()) { String loggerName = loggerNames.nextElement(); Logger logger = logManager.getLogger(loggerName); if (logger != null && namespaceToLevel.containsKey(loggerName)) { logger.setLevel(namespaceToLevel.get(loggerName)); } } }
if (options.isDebugJackInternals()) { builder.addJvmArg("-Dcom.android.jack.log=DEBUG");