I have a simple console app which uses apache's PDFBox library, which in turn uses commons logging. I'm getting a lot of junk messages in my console which I'd like to suppress:
Feb 15, 2011 3:56:40 PM org.apache.pdfbox.util.PDFStreamEngine processOperator INFO: unsupported/disabled operation: EI
In my code, I've tried to reset the log levels to no avail:
Logger.getLogger("org.apache.pdfbox.util.PDFStreamEngine").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox.util").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox").setLevel(Level.OFF);
Despite these settings, the messages are still showing up on the console. Retrieving the log object from Commons logging doesn't help either, since it doesn't seem to have a way to set the level.
Is there a way to suppress these messages programmatically? Or do I need to add a config file?
Commons-logging is only a logging-facade, meaning it doesn't provide the code which actually writes the logdata to e.g., disk. What you need to change is the configuration for the actual logging implementation (such as
logback
,log4j
, etc.). If no such library is found it defaults tojava.util.logging
.I would recommend putting e.g., log4j in the classpath and add a log4j.xml configuration file in your classpath. The mere presence of
log4j
in the classpath is in this case enough to initialize it. Log4j can also be configured programmatically.