README.md

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. Дополнительное конфигурирование

  1. Выполнить минимальное подключение по п. 3.1.
  2. Реализовать метод 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. Особенности работы

  1. При каждом вызове логирования создается новая строка;
  2. На текущий момент логирование осуществляется только в стандартный поток ввода-вывода.

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

Конвейеры
0 успешных
0 с ошибкой