Библиотека объявляет пространство имен<boost::log>, которое должно использоваться в клиентском коде для доступа к компонентам библиотеки. Однако внутри библиотеки используется другое вложенное пространство имен для фактической реализации. Имя пространства имен зависит от конфигурации и платформы, оно может изменяться между различными релизами библиотеки, поэтому оно никогда не должно использоваться в коде пользователя. Это делается для того, чтобы максимально синхронизировать конфигурацию библиотеки с приложением и устранить проблемы, вызванные несоответствием конфигурации.
В большинстве случаев пользователи даже не замечают существования этого внутреннего пространства имен, но оно часто появляется в ошибках компилятора и линкера, и в некоторых случаях полезно знать, как декодировать его имя. В настоящее время название пространства имен состоит из следующих элементов:
<version><linkage>_<threading>_<system>
- Компонент<
<version>>описывает основную версию библиотеки. В настоящее время<v2>.
- Компонент<
<linkage>>показывает, связана ли библиотека статически или динамически.<s>Если библиотека связана статически и пуста иначе.
- <
<threading>><st>для однопоточной сборки и<mt>для многопоточной.
- Компонент<
<system>>описывает базовый API ОС, используемый библиотекой. В настоящее время он предназначен только для многопоточной сборки. В зависимости от целевой платформы и конфигурации она может быть<posix>,<nt5>или<nt6>.
В качестве пары быстрых примеров<v2s_st>соответствует v2 статичной однопоточной сборке библиотеки и<v2_mt_posix>— v2 динамической многопоточной сборке для POSIX системного API.
Манглинг пространства имен может привести к ошибкам ссылки, если приложение неправильно настроено. Одной из распространенных ошибок является создание динамической версии библиотеки, а не определение<BOOST_LOG_DYN_LINK>или<BOOST_ALL_DYN_LINK>при создании приложения, так что библиотека по умолчанию принимает статическое связывание. Всякий раз, когда появляются такие ошибки связи, можно декодировать имя пространства имен в недостающих символах и экспортируемых символах Boost. Библиотека журнала и соответствующим образом настроить библиотеку или приложение.