Poi UtilsLoggingLogging in POI is used only as a debugging mechanism, not a normal runtime logging system. Hence, we need to be able to easily disable it entirely and make POI not dependent on any logging package. POI is not dependent on commons-logging for running, but not for compiling.Logging OverviewEvery class uses a POILogger to log, and gets it using a static method of the POILogFactory . The POILogFactory uses the NullLogger by default; it can be instructed to use any other POILogger implementation by setting the system property org.apache.poi.util.POILogger. java -Dorg.apache.poi.util.POILogger=the.package.of.MyPoiLoggerImpl ProgramThatUsesPoi POILogFactoryEach class in POI can get its POILogger by calling a static method of the POILogFactory . POILoggerEach class in POI can log using a POILogger, which is an abstract class. We decided to make our own logging facade because:
There are three implementations available, and you can roll out your own, just extend org.apache.poi.util.POILogger. NullLoggerDiscards every logging request. SystemOutLoggerSends every logging request to System.out. CommonsLoggerSends every logging request to the Commons Logging package. This can use JDK1.4 logging, log4j, logkit, and is an actively maintained Jakarta Project. |