A routing mechanism through which log reports can be written to files and other destinations.
All log events are routed through loggers. A named logger can be retrieved by calling Logger::getLogger.
A logger may have one or more appenders attached. Whenever a logger receives an event of sufficient severity, it will write it in appropriate format to each of the appenders which is attached. Appenders can be attached using Logger::addAppender, but are more usually controlled by run-time configuration.
Pointers to loggers are retrieved as the smart pointer type
This is a simple shared pointer to a logger.