The Commons Logging assembly (Common.Logging v1.2) is a bridge between different logging implementations. A library that uses the commons-logging API can be used with any logging implementation at runtime. Commons Logging comes with support for a number of popular logging implementations, and writing adapters for others is a reasonably simple task. Using Commons Logging allows an application to change to a different logging implementation without recompiling code.
Follow this link for all Model Xtractor diagrams using this product. Most diagrams are public and unrestricted, using unprotected metadata.
We start with a high level view at the Commons Logging product, its single assembly, the two namespaces and all types within. As well as component dependencies on the .NET Framework assemblies. Imported version depends on .NET 2.0, but this translates identical on other framework versions:
Common.Logging namespace contains main types. The object model is described here:
Common.Logging.Simple is the second namespace of the assembly, with sample implementations of ILog-based logger types TraceLogger, NoOpLogger and ConsoleOutLogger, and the related ILoggerFactoryAdapter-based adapter types TraceLoggerFactoryAdapter, NoOpLoggerFactoryAdapter and ConsoleOutLoggerFactoryAdapter. An adapter calls the GetLogger method to instantiate and return the logger:
A different view of the previous diagram focus on the implemented ILog and ILoggerFactoryAdapter interfaces, expanded and linked to the Common.Logging.Simple loggers and adapters through realization connectors. This diagram is protected and fully accessible only by the subscribers. Click on the thumbnail to go to the published diagram page, and eventually see its real size image: