Недавно на Хабре промелькнула пара статей о библиотеках логирования для С++. Статьи хорошие и доходчивые, автору респект. Но лично я не понимаю следующих вещей:
Я, как и в предыдущих статьях, буду описывать использование этой библиотеки в Microsoft Visual Studio 2010 sp1.
- Как можно пользоваться библиотекой, разработка которой заброшена много лет назад (log4cxx)?
- Зачем библиотеке логирования зависимости от других библиотек (log4cxx, Pantheios) ?
- Как можно не иметь такого базового функционала, как Rolling Files? (Pantheios)
- Зачем библиотеке логирования такие размеры (log4cxx — в сумме 4.1 Мб в архиве, Pantheios — 9.3 Мб в архиве )?
- Почему при компиляции библиотеки логирования я должен разгребать ~300 ошибок (log4cxx) ?
- Последний стабильный релиз вышел в 2011 году, имеется активный трекер и постоянные коммиты в репозиторий
- Имеется куча механизмов вывода логов (одних только Rolling Files — 2 вида)
- Никаких внешних зависимостей
- Общий размер исходников в архиве — 420 Кб (это с документацией, тестами и примерами)
- В комплекте готовые проекты под разные платформы, которые компилируются без ошибок
- Прикручивается к проекту менее, чем за 5 минут
Я, как и в предыдущих статьях, буду описывать использование этой библиотеки в Microsoft Visual Studio 2010 sp1.
- Итак, качаем последнюю версию библиотеки: log4cplus-1.0.4.tar.bz2
- Разархивируем.
- Отрываем в Visual Studio решение log4cplus-1.0.4\msvc8\log4cplus.sln. Оно по ходу дела конвертится под десятую студию.
- Компилируем в нужной конфигурации (я компилировал в Release_Unicode).
- Создаём тестовый проект — консольное приложение.
- Добавляем в зависимости либу log4cplusUS.lib.
- Добавляем в Additional Include Directories путь к log4cplus-1.0.4\include
- Пишем следующий код:
#include "stdafx.h" #include <log4cplus/logger.h> #include <log4cplus/configurator.h> #include <iomanip> using namespace log4cplus; int main() { BasicConfigurator config; config.configure(); Logger logger = Logger::getInstance(_T("main")); LOG4CPLUS_WARN(logger, _T("Hello, World!")); return 0; }
- Кладем log4cplusU.dll (она у нас скомпилировалась на 4-ом шаге) рядом с exe-файлом тестового проекта.
- Запускаем. Видим в консоли вывод нашего логгера.
- PROFIT!