Pull to refresh

Comments 9

Отличная библиотека, сам пользуюсь.
boost::logging? Особенно если в проекте и так буст есть, количество телодвижений сводится к 0 :-)
А можно написать свой таргет для вывода логов?
Конечно. Нужно унаследоваться от одного базового класса и переопределить пару методов.
LOG4CPLUS_WARN(logger, _T("Hello, World!"));
Почему я должен использовать в своем проекте макросы вместо обычных методов?
Я даже не очень понимаю, что отвечать…
1. Вы, конечно же, никому ничего не должны. Библиотека предлагает такой способ работы с ней. Можно пользоваться, можно искать другую библиотеку.
2. Если охота — можно вместо одной строки написать в явном виде вызов метода logger.forcedLog. Макрос просто добавляет пару проверок и некоторую общность.
3. Можно написать свой вроппер без макросов — опенсорс ведь.
4. А что плохого в макросах?
1, 2, 3 — это, конечно, верно. Просто странно, что проверки, которые вы упомянули, нельзя было реализовать в самом методе.
4 — а вот на этот вопрос Вам ответит толстая красная книжка Макконнелла.
Вы о том, что они плохо дебажатся и в них можно допустить трудно находимую ошибку? Ну да. Но эти-то уже написаны и протестированы.
Потому что иначе вы не сможете получить значения __LINE__ и др. констант.
Sign up to leave a comment.

Articles