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);
}
}