Use of Logging in Java Image Processing libraries

For IMAGING-154 I was trying to think in a solution for the existing Debug class. This class was the issue of discussion during a previous 1.0 release vote thread.

Initially I tried simply changing the class a bit, and make it configurable, so that we could keep it - as there is a valid use case for having a class that collects information during the image processing algorithms were applied.

And for me, the next step would naturally be to remove the use of System.out, as the Debug class would now have a PrintStream that could be System.out or something else.

That’s when I realized in the current version of Apache Commons Imaging (née Sanselan) uses System.out when debugging, but also when it wants to enable a verbose” mode in some classes.

I am using this post to collect a few cases, and check what other image processing images are doing with regards to logging.

LibraryLogger
Java ImageIONo logging (exceptions only)
im4javaNo logging (exceptions only)
opencv JNINo logging (exceptions only)
GeoSolutions ImageIO-Extjava.util.logging
Catalanojava.util.logging
Apache PDFBox JBIG2Custom Logger
ImageJ2SciJava Logger
FijiSLF4J + logback
OpenJPEGCustom Logger
imgscalarSystem.out
Apache Commons ImagingSystem.out
SanselanSystem.out
MarvinSystem.out
ProcessingSystem.out

Categories: Blog

Tags: Apache Software Foundation, Java, Image Processing, Opensource