org.semanticweb.owlapi.util.SLF4JSilencer Maven / Gradle / Ivy
package org.semanticweb.owlapi.util;
import java.io.PrintStream;
import javax.annotation.Nullable;
/**
* A small wrapper class that allows SLF4J error messages about not having a
* binding (or more than one) silenced. Just add {@code SLF4J.silence();} before
* any logger is initialised - ideally as first instruction in your main. If the
* default behaviour becomes useful, {@code SLF4J.deSilence();} will restore
* things.
*/
public class SLF4JSilencer {
private static final PrintStream originalErr = System.err;
private static final PrintStream filterOut = new PrintStream(System.err) {
@Override
public void println(@Nullable String l) {
if (l == null || !l.startsWith("SLF4J")) {
super.println(l);
}
}
};
/** Silence SLF4J warnings. */
public static void silence() {
System.setErr(filterOut);
}
/** Restore regular behaviour. */
public static void deSilence() {
System.setErr(originalErr);
}
}