Here are definitions of some terms that will be used widely throughout the documentation:
A single bundle of information, collected from the user's application, that is a candidate to be put into the log. In a simple case the log record will be represented as a line of text in the log file after being processed by the logging library.
An "attribute" is a piece of meta-information that can be used to specialize a log record. In Boost.Log attributes are represented by function objects with a specific interface, which return the actual attribute value when invoked.
Attribute values are the actual data acquired from attributes. This data is attached to the specific log record and processed by the library. Values may have different types (integers, strings and more complex, including user defined types). Some examples of attribute values: current time stamp value, file name, line number, current scope name, etc..
A target, to which all log records are fed after being collected from the user's application. The sink defines where and how the log records are going to be stored.
An entry point for the user's application to put log records to. In a simple case it is an object (logger) which maintains a set of attributes that will be used to form a log record upon the user's request. However, one can surely create a source that would emit log records on some third-party events (for example, by intercepting another application's console output).
A predicate that takes a log record and tells whether this record should be passed through or discarded.
A function object that generates the final textual output from a log record. Some sinks, like the binary logging sink, may not need it, although almost any text-based sink would use a formatter to compose its output.
The global entity that maintains connections between sources and sinks and applies filters to records. It is mainly used when the logging library is initialized.
Internationalization. The ability to manipulate wide characters.