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

88

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

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

амит
источник
У меня есть собственная система ведения журнала, но я собираюсь перейти на нее, так что интересный вопрос!
Седрик Х.
21
bloost.log ОЧЕНЬ медленный, безумно сложный в настройке, он почти не прошел процесс проверки и по состоянию на 1.47 все еще не включен в версию Boost. Это одна из тех библиотек, которые могут не попасть в основную ветку в ближайшие пару лет, поэтому на данный момент лучше использовать log4c и т. Д.
4
Фактически, было объяснено, что для этого нужны некоторые исправления и что текущая цель выпуска - это лето - заброшенные библиотеки не имеют расписания и репозитория незавершенной работы. Кроме того, автор сообщил, что пользователь сообщил ОЧЕНЬ ОЧЕНЬ хорошую производительность. Сложность полезна в некоторых контекстах, и если она вам не нужна, вы можете просто использовать предоставленные простые макросы. Итак, я не согласен с вашим комментарием.
Klaim
40
Я действительно хочу, чтобы StackOverflow перестал закрывать заведомо полезные вопросы, подобные этому, как «неконструктивные».
Стефан
6
Интересно, как дела в 2015 году? Может быть, использование 2.0 теперь "нормально"?
Vincas Dargis

Ответы:

41

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

Мой опыт работы с Boost.Log в 2010 году описан ниже.


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

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

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

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

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

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

Оскар Н.
источник
21

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

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


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

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

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

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

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

Клаим
источник
7

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

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

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

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

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

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

Qortex
источник