Как стать автором
Обновить

Библиотека логирования log4cplus

Время на прочтение2 мин
Количество просмотров11K
Недавно на Хабре промелькнула пара статей о библиотеках логирования для С++. Статьи хорошие и доходчивые, автору респект. Но лично я не понимаю следующих вещей:
  • Как можно пользоваться библиотекой, разработка которой заброшена много лет назад (log4cxx)?
  • Зачем библиотеке логирования зависимости от других библиотек (log4cxx, Pantheios) ?
  • Как можно не иметь такого базового функционала, как Rolling Files? (Pantheios)
  • Зачем библиотеке логирования такие размеры (log4cxx — в сумме 4.1 Мб в архиве, Pantheios — 9.3 Мб в архиве )?
  • Почему при компиляции библиотеки логирования я должен разгребать ~300 ошибок (log4cxx) ?
Поэтому я решил рассказать о такой библиотеке, как log4cplus, у которой:
  • Последний стабильный релиз вышел в 2011 году, имеется активный трекер и постоянные коммиты в репозиторий
  • Имеется куча механизмов вывода логов (одних только Rolling Files — 2 вида)
  • Никаких внешних зависимостей
  • Общий размер исходников в архиве — 420 Кб (это с документацией, тестами и примерами)
  • В комплекте готовые проекты под разные платформы, которые компилируются без ошибок
  • Прикручивается к проекту менее, чем за 5 минут

Я, как и в предыдущих статьях, буду описывать использование этой библиотеки в Microsoft Visual Studio 2010 sp1.
  1. Итак, качаем последнюю версию библиотеки: log4cplus-1.0.4.tar.bz2
  2. Разархивируем.
  3. Отрываем в Visual Studio решение log4cplus-1.0.4\msvc8\log4cplus.sln. Оно по ходу дела конвертится под десятую студию.
  4. Компилируем в нужной конфигурации (я компилировал в Release_Unicode).
  5. Создаём тестовый проект — консольное приложение.
  6. Добавляем в зависимости либу log4cplusUS.lib.
  7. Добавляем в Additional Include Directories путь к log4cplus-1.0.4\include
  8. Пишем следующий код:
    	#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;
    	}
  9. Кладем log4cplusU.dll (она у нас скомпилировалась на 4-ом шаге) рядом с exe-файлом тестового проекта.
  10. Запускаем. Видим в консоли вывод нашего логгера.
  11. PROFIT!
Дальше можно начинать ковырять конфиг-файлы, писать свои аппендеры и лейауты и т.д. Кому интересно — вот чуть более глубокая статья об этих вещах. А вот — еще пару примеров.
Теги:
Хабы:
+6
Комментарии9

Публикации

Изменить настройки темы

Истории

Работа

QT разработчик
6 вакансий
Программист C++
123 вакансии

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн