# Class List

Here are the classes, structs, unions and interfaces with brief descriptions:

Chain< HeadType, TailType > | Expandable statically-typed container for values and references
ChainLoggable< ChainType > | Wrapper which exposes the contents of the Chain object as a CompositeLoggable
CompositeLoggable | Base class for Loggables with a state consisting of more than one value
DebugOutputLogManager | Log manager which outputs the messages via OutputDebugString() system call
FileLogManager | Log manager which outputs string messages to files
FirstLevelContentsPrinter | This LogContentsPrinter implementation writes only the CompositeLoggables onto a std::ostringstream in a simple format that doesn't include the Loggable's name
FormattedChainLoggable< ChainType > | ChainLoggable which allows arbitrary formatting of its string representation
GenericLogPrinter< T > | GenericLogPrinter abstract class
GenericSimpleLoggable< T > | Used to wrap simple, built-in types (int, std::string, etc.) as a Loggable
IGenericLogManager< T > | IGenericLogManager interface
ILogManager | ILogManager interface
ILogPrinter | ILogPrinter interface
LogContentsPrinter | Base class for objects responsible for formatting separate Loggables
LogFilter | Simple filter which decides whether the message should be filtered basing on its LogLevel and origin
Loggable | Base class for objects that can output their string representation
LoggableTraits< T > | Base LoggableTraits template class
Logger | Central object of the logging system
LogInfo | Structure containing the additional information about the log message
NullType | Empty structure. Used as a guardian element at the end of the Chain
ScopeLogger | Helper class for the user of the logging system. Allows to define the hierarchy of the project
SimpleContentsPrinter | This LogContentsPrinter implementation writes both the SimpleLoggables and CompositeLoggables onto a std::ostringstream in a simple format including the Loggable's name
SimpleLoggable | Empty abstract class, used to identify Loggables that are not CompositeLoggables
SimpleTextLogPrinter | This GenericLogPrinter implementation formats the log messages into a simple text format, suitable for displaying on a terminal output
VectorLoggable< T > | Used to wrap std::vector as a Loggable
XMLContentsPrinter | This LogContentsPrinter implementation creates a XMLNodes mirroring the structure of passed Loggables
XMLLogPrinter | This GenericLogPrinter implementation formats the log messages into XML
XMLNode | Objects of this class represent nodes of the XML structure