1. Описание
Модуль для вывода красивых логов
Делаем:logInfo("a=", to_string(a), ", b=", to_string(b));
Получаем:[INFO]:[OVERRIDED_NAME]: a=12, b=51
2. Дополнительные ссылки:
Репозиторий проекта
Доска проекта
3. Установка
3.1. Вид компонента
Компонент является неисполняемым модулем, включающим в себя набор исходных текстов программ и CMake-файл
Не является прекомпилированной библиотекой, исполняемым файлом или компонентом, получаемым через какой-либо пакетный менеджер
3.2. Требования
Язык программирования проекта-пользователя - C++
Система сборки - CMake, но необязательно
3.3. Зависимости
Стандартная библиотека C++
3.4. Подключение модуля
3.4.1. Как набор исходников
- Скачать модуль/склонировать репозиторий/Добавить проект как сабмодуль в свой проект
-
Указать своей системе сборки, что нужно подключить к проекту исходные и заголовочные файлы модуля:
(!!! Описание можен быть неактуально, см. Полный список файлов в корневом CMakeLists.txt){module_dir}/src/include/ner_log.h
{module_dir}/src/logging_component.h
{module_dir}/src/logging_component.cpp
3.4.2. Как поддиректория CMake-проекта
- Скачать модуль/склонировать репозиторий/Добавить проект как сабмодуль в свой проект
- В Вашем проекте, куда вы подключаете этот проект, в CMakeLists.txt Добавьте:
include_directories({module_dir}/src/include)
add_subdirectory({module_dir})
target_link_libraries({Your_project_name} ner_log)
где:{module_dir}
- директория, куда Вы скачали модуль,{Your_project_name}
- название Вашего проекта, указанное в CMakeLists.txt, например: project(Your_project)
Проект с примером подключения модуля
CMakeLists.txt проекта с модулями
4. Подготовка к использованию
4.1. Минимальное
Для начала красивого логирования необходимо:
1. Заинклудить файл src/include/ner_log.h
2. Унаследовать Ваш класс от класса LoggingComponent
your_file.h:
#include "ner_log.h"
class YourClass : protected LoggingComponent
{
...
}
После этого модуль готов к выводу логов
4.2. Дополнительное конфигурирование
- Выполнить минимальное подключение по п. 3.1.
- Реализовать метод getLoggingTag():
your_file.h:
#include "ner_log.h"
class YourClass : protected LoggingComponent
{
...
protected:
virtual string getLoggingTag() override;
...
}
your_file.cpp
#include "your_file.h"
string YourClass::getLoggingTag() {
string tag = "YOUR_CLASS_COMPONENT";
return tag;
}
Метод getLoggingTag
переопределяется для того, чтобы отображать тэг при логировании
5. Типичное использование
После выполнения п.3.1 или п.3.2 в реализации унаследованного компонента можно использовать методы логирования: logInfo(...);
logWarn(...);
logErr(...);
У каждого метода существуют варианты вызова до пяти (на момент написания руководства) параметров. Параметры внутри метода сцепятся между собой без каких либо разделителей, что позволяет делать следующее:
int a = 12;
int b = 51l;
logInfo("a=", to_string(a), ", b=", to_string(b));
и получить в выводе:[INFO]:[OVERRIDED_NAME]: a=12, b=51
6. Особенности работы
- При каждом вызове логирования создается новая строка;
- На текущий момент логирование осуществляется только в стандартный поток ввода-вывода.
7. Конфигурация
На текущий момент конфигурация модуля отсустствует
8. Участие в развитии
Если хотите поучаствовать в развитии, можете написать автору свои предложения и замечания, или кинуть пул-реквест. Автор не дает гарантий, что не забьет на них болт.
Если есть внутреннее желание помочь автору - перейдите по ссылке в п.12 на канал и ознакомьтесь с творчеством, или вступите в группу в террограмме.
9. Лицензия
Никаких лицензий нет. Если Вам нужно, используйте по своему усмотрению, изменяйте, нарезайте на диски и продавайте в метро.
10. Запрет на использование
Согласно Международной Антипетушиной Конвенции, следующим людям, компаниям, сотрудникам этих компаний и дочерним организациям запрещается в любом виде использовать этот проект и любой проект из репозитория Сковороды:
- Павел Дуров;
- Александр Агапитов;
- Артем Шпынов;
- Компания “Сбер”;
- Компания “Яндекс”.
11. Обязательства разработчика
Разработчик не берет на себя никакой ответственности за безвозмездное сопровождение, изменение, доработки и исправления ошибок. Но может посмотреть пул-реквесты, если они будут.
12. Контакты
Чат с разработчиком в террограмме
Группа автора в террограмме
Чат группы (запрещено на территории Босснии и Герцоговины)
Youtube-канал автора (нет там не про код)
Описание
Модуль, предоставляющий возможность логирования. Доска: https://ru.yougile.com/team/9bd73ca50600/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%9F%D0%9E/Ner_log