Here are definitions of some terms that will be used widely throughout the
documentation:

Log record

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.

Attribute

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 value

Attribute values are the actual data acquired from attributes. This data
is attached to the specific log record and processed by the library.
Values can 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.. Attribute
values are enveloped in a type erasing wrapper, so the actual type of
the attribute is not visible in the interface. The actual (erased) type
of the value is sometimes called the stored type.

(Attribute) value visitation

A way of processing the attribute value. This approach involves a function
object (a visitor) which is applied to the attribute value. The visitor
should know the stored type of the attribute value in order to process
it.

(Attribute) value extraction

A way of processing the attribute value when the caller attempts to obtain
a reference to the stored value. The caller should know the stored type
of the attribute value in order to be able to extract it.

Log sink

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

Log source

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 side
events (for example, by intercepting and parsing console output of another
application).

Log filter

A predicate that takes a log record and tells whether this record should
be passed through or discarded. The predicate typically forms its decision
based on the attribute values attached to the record.

Log formatter

A function object that generates the final textual output from a log
record. Some sinks, e.g. a binary logging sink, may not need it, although
almost any text-based sink would use a formatter to compose its output.

Logging core

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.

i18n

Internationalization. The ability to manipulate wide characters.

TLS

Thread-local storage. The concept of having a variable that has independent
values for each thread that attempts to access it.

RTTI

Run-time type information. This is the C++ language support data structures
required for dynamic_cast
and typeid operators to
function properly.