PicoContainer's primary mission statement is to provide an Inversion of Control (IoC) container for components honor the Dependency Injection (DI) pattern. Logging is an important and useful function of many enterprise-level applications. Yet the logging tools and frameworks available remain stubbornly wed to the static lookup and discovery approach that defies the concepts of IoC and DI. The main problem with static lookup is that it allows only one configuration per JVM, even if there are completely different applications deployed. To compound problems, static lookup is often coupled with auto-discovery mechanisms of which logging framework is deployed by looking for classes in the classpath. This makes it impossible to use a chosen logging framework per application, as would be expected of any configurable system.
Following the general PicoContainer philosophy, we strive to interoperate and are not trying to propose an alternative logging facade. Rather, we generally propose an alternative approach to logging, based on the Monitor pattern to abstract the dependency on any logging framework.
However, some situations demand a generalized logging environment...
Though only released in June of 2008 as library from the PicoContainer team, the technology has existed and been used in production apps since 2003. It was formerly part of lesser known set of components from the 'Spice' project evolved by Peter Donald (an IoC pioneer) and Mauro Talevi. Peter recently donated these to the PicoContainer team for a new release.