Опыт использования библиотеки журналов Boost.Log?

Я рассматриваю возможность начать использовать Boost.Log logging library. Кто-нибудь использует Boost.Log? Пожалуйста, поделитесь своим опытом в этом отношении.

Другие библиотеки, которые я рассматриваю, - это Apache log4cxx (кажется, утомительно установить, но мои товарищи по команде хотят, чтобы что-то было легко начать) и Pantheios (та же проблема, поскольку она работает с дополнительным передним и задним концом).

Ответ 1

ОБНОВЛЕНИЕ: с тех пор, как это было написано, заменили Boost.Log собственным пользовательским протоколированием, главным образом потому, что я решил избавиться от всех зависимостей Boost во всех моих проектах по разным причинам. Если у вас все в порядке с использованием Boost, я думаю, Boost.Log по-прежнему является допустимым выбором, судя по Klaim answer.

Мой опыт работы с Boost.Log в следующем году.


Я успешно интегрировал Boost.Log в свой игровой движок, и я могу говорить только о хороших вещах. Конечно, это немного рано использовать, так как версия 2 будет реальной версией, которая станет официальной Boost.Log.

Остерегайтесь того, что версия "1.0" не поддерживается. Чтобы получать обновления, вы должны использовать версию кровоточащего края (магистрали), которая может стать нестабильной. Учитывайте это, если вы собираетесь использовать эту версию в любых серьезных проектах. Если вы не боитесь использовать кратковременные версии кровопускания или будущий полом, тогда идите. Это действительно приятно использовать, поскольку оно находится в его текущем состоянии.

Я давно думал, что иерархическая система ведения журнала в log4j/log4cxx превосходит, но Boost.Log заставил меня думать иначе. Фильтрация и атрибуты являются более гибкими.

Конструкция раковин, разделенных интерфейсом/бэкэндом, позволяет легко добавлять дополнительные бэкэнды. Не нужно беспокоиться о проблемах синхронизации или фильтрации, которые обрабатываются интерфейсом. Библиотека также поставляется с большим количеством бэкендов, вращательными файлами, консолью, syslog, регистром событий Windows и т.д.

Я написал свои собственные раковины; один идет в игровой консоли, а другой - в систему уведомлений для более серьезных событий. Было легче, чем я ожидал, запустив его за несколько минут.

И последнее, но не менее важное: разработчик/разработчик действительно полезен. Вы получите большую помощь на форумах проекта. В этот уик-энд он исправил две ошибки (из которых один крупный), я сообщил: -)

Ответ 2

UPDATE: я использую Boost.Log в систему движка игры, и я очень доволен ею. Он быстрый, потокобезопасный и очень гибкий, когда вам это нужно.

Boost.Log должен быть предоставлен всеми библиотеками Boost в следующем выпуске в этом году (2013).


Boost.Log сделан для установки на него системы журналов. Если вы прочтете документацию, вы увидите, что она настолько гибкая, что любая система регистрации, с которой я могу думать, может быть с ней построена (например, запись на удаленном компьютере).

Итак, есть макрос, чтобы облегчить использование в простых проектах, но я думаю, что это такая библиотека, которая полезна в основном для людей, которые действительно понимают протоколирование и хотите создать определенную архитектуру для их применения.

О производительности, я помню, что в представлении были проблемы, которые делали это медленнее по сравнению с другими (менее гибкими) библиотеками протоколирования, но поскольку это был проект, и первый выпуск еще не вышел, я бы не стал беспокоиться, если вы не кодируя критичное по времени приложение.

В конце концов, я думаю, что это просто слишком "новое" для оценки "сейчас". Нет другой библиотеки журналов, которая столь же гибкая, как эта, и я не уверен, что многие люди почувствуют необходимость ее использования.

Обновление: недавний обмен электронной почтой с автором Boost.Log приводит к некоторым данным, которые показывают, что Boost.Log является отличной альтернативой для быстрого ведения журнала.

Ответ 3

Недавно я изучил внедрение системы ведения журнала в проекте, который я запускал.

Я попробовал log4cxx, как вы его упоминаете, это действительно очень утомительно для установки. Мне потребовалось несколько часов, чтобы заставить его скомпилировать под VS2012 (с другими библиотеками зависимостей...), а затем он просто разбился, когда я использовал его в своем проекте. Конечно, некоторые странные вещи, связанные со стандартными библиотеками, несовместимы, но не могли понять.

Итак, я переключился на log4cpp, который я запустил всего за несколько минут. Я нахожу его элегантным и легким, просто то, что мне нужно. Это имеет большое преимущество, имея те же функции, что и известные log4j и co. которые могут быть реальным плюсом для вашей совместной работы (конфигурация через конфигурационный файл и т.д.).

Что касается производительности, для проверки того, активен ли журнал для уровня сообщения, требуется один вызов функции, затем один вызов функции для фактического регистрации данных.

С помощью нескольких макросов, выполненных на дому (для добавления LINE и соавторов к сообщениям), log4cpp действительно оказался полезным в моем проекте.

К сожалению, я не пробовал Boost.Log, поэтому не могу говорить об этом, но я надеюсь, что эта обратная связь по-прежнему будет полезна для вас, если вы решите не идти по пути Boost.Log.