Description
There should be a log system. It should be an abstract logging system, which intercepts calls to a number of logging systems (like log4j, java.util.log, etc..) routing messages to it's own classes. Then have various implementations to do the other way around thru the same libraries (log4j, java.util.log etc..)
This way, no matter which logging infrastructure the developer or a library wants to use, all the log will be centralized and rendered thru the logging system of choice of the final user.