diff --git a/src/documentation/xdocs/utils/book.xml b/src/documentation/xdocs/utils/book.xml
index f6ed52ceee..d335bf38b4 100644
--- a/src/documentation/xdocs/utils/book.xml
+++ b/src/documentation/xdocs/utils/book.xml
@@ -9,6 +9,11 @@
+ Logging 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. +
+ +
+ Every 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
.
+
+ Each class in POI can get its POILogger
by calling a static method
+ of the POILogFactory
.
+
+ Each 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
.
+
Discards every logging request.
+Sends every logging request to System.out.
+Sends every logging request to the Commons Logging package. This can use JDK1.4 logging, + log4j, logkit, and is an actively maintained Jakarta Project.
+