Overview

Why PicoContainer Logging?

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.

Monitors Preferred

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...

What PicoContainer's Logging is..

  • It is not dependent on PicoContainer itself. It can be used with or without other IoC or DI containers/frameworks
  • It is design to be injected into components that need it
  • It can route through to Log4J, JDK-Logging
  • It can be used completely independently of Log4J or JDK-Logging

How mature is this Logging framework?

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.