1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Armink-EasyLogger

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

EasyLogger


1. Введение

EasyLogger — это сверхлегковесная (ROM < 1.6 КБ, RAM < 0.3 КБ) и высокопроизводительная библиотека логирования для C/C++, идеально подходящая для проектов с ограниченными ресурсами, таких как продукты IoT, носимые устройства, умный дом и т.д. По сравнению с известными библиотеками логирования для C/C++ (например, log4c, zlog), функционал EasyLogger более простой, предоставляются меньше интерфейсов, но он быстрее в освоении. Дополнительные полезные функции поддерживаются в виде плагинов.

1.1 Основные характеристики

  • Поддержка пользовательских методов вывода (например, консоль, файл, база данных, последовательность, RS485, флэш...);
  • Логи могут содержать уровень, метку времени, информацию о потоках, процессах и т.д.;
  • Проект спроектирован таким образом, чтобы обеспечивать безопасность при работе с несколькими потоками, а также поддерживает асинхронный вывод и буферизированный вывод;
  • Поддержка различных операционных систем (RT-Thread, UCOS, Linux, Windows, Nuttx и т.д.), а также голых платформ;
  • Поддержка сырых форматов, hexdump;
  • Возможность динамического фильтра по тегам, уровням и ключевым словам;
  • Различные уровни логов поддерживают цветной вывод;
  • Высокая гибкость, позволяющая расширять функциональность через плагины.> Объяснение терминов:
  • RAW формат: сырые логи без форматирования;
  • Тег: в программе можно использовать теги для разделения логов по файлам, модулям, функциям и т.д., что позволяет организовать логи по категориям.

1.2 Плагины

  • Flash: использует интерфейсы работы с флэш-памятью из библиотеки EasyFlash, позволяющие хранить логи прямо в памяти флэш без использования файловой системы.
  • File: поддерживает функции преобразования файлов, циклического сохранения файлов и т.д., связанные с выводом логов в файл.
  • Дополнительная информация будет добавлена...

1.3 Star & Fork

Позже я добавлю больше плагинов. Также приветствуем ваши предложения по созданию новых полезных плагинов и функций, чтобы вместе сделать EasyLogger ещё лучше (GitHub|OSChina|Coding). Если вам понравился этот открытый проект, вы можете нажать на кнопку Star в верхнем правом углу страницы проекта и порекомендовать его другим заинтересованным пользователям.

2. Установка и использование

2.1 Настройка параметровEasyLogger имеет следующие свойства: способ фильтрации, формат вывода и режим вывода.

  • Фильтрация поддерживает сортировку по меткам, уровням и ключевым словам;
  • Возможность динамического включения/отключения вывода логов;
  • Установка динамических и статических уровней вывода
    • Статический: первичный выключатель, используемый через макрос при компиляции;
    • Динамический: вторичный выключатель, используемый через API во время выполнения.> Примечание: В настоящее время конфигурационные параметры и методы вывода используются в режиме singleton, то есть глобально поддерживаются только один способ конфигурации. При этом режиме программное обеспечение будет проще, но не сможет поддерживать сложные способы вывода.

2.2 Уровень вывода

Соответствует уровню Android Logcat, где максимальный уровень равен 0 (Assert), а минимальный — 5 (Verbose).

0.[A]: Ассерт (Assert)
1.[E]: Ошибка (Error)
2.[W]: Предупреждение (Warning)
3.[I]: Информация (Info)
4.[D]: Отладка (Debug)
5.[V]: Подробности (Verbose)

2.2.1 Цветной вывод логов

Цвета по умолчанию для каждого уровня лога представлены ниже. Пользователи также могут самостоятельно настроить цвета и стиль шрифта для каждого уровня лога в файле elog_cfg.h.

2.3 Фильтрация вывода

Поддерживает фильтрацию по уровням, меткам и ключевым словам. При большом объёме логов использование фильтрации позволяет быстрее находить нужные записи и обеспечивает читаемость логов. Для более подробной информации о настройках фильтрации обратитесь к документу \docs\zh\api\kernel.md .

Примечание: Логи в RAW-формате и hexdump-формате не поддерживают фильтрацию по меткам и ключевым словам.

2.4 Формат выводаФормат вывода поддерживает: уровень, время, метку, информацию о процессе, информацию о потоках, путь к файлу, номер строки, имя метода. Каждому уровню можно независимо назначить свой формат вывода.### 2.5 Способ вывода

При помощи портирования пользователями может поддерживаться любой способ вывода. Однако новые возможности, связанные со специальным способом вывода, должны реализовываться через плагины, такие как: запись логов в файл, поиск логов Flash и т.д. В будущем будут доступны ещё больше плагинов. Ниже приведены сравнительные характеристики некоторых способов вывода:

  • Консоль: удобна для динамической проверки, но не имеет функции хранения данных;
  • Файл и Flash: имеют функцию хранения данных, позволяющую просматривать исторические данные логов. Но способ записи в файл требует наличия файловой системы, тогда как способ записи в Flash лучше всего подходит для использования на малых встраиваемых устройствах без файловой системы.

2.6 Примеры

2.6.1 Основные функции

Ниже приведена схема управления выводом логов и настройки фильтров через командную строку, что наглядно демонстрирует основные возможности EasyLogger.

easylogger

2.6.2 Сохранение логов в Flash памятиПроцесс ниже показывает, как выводятся логи через консоль и сохраняются в flash-памяти. После перезапуска системы логи восстанавливаются, а затем очищаются.

FlashLog

2.6.2 Сохранение логов в файлах

С помощью плагина File можно автоматически сохранять логи в файлы. Размер каждого файла может быть установлен; при превышении этого размера создается новый файл для хранения логов.

3. Документация

Дополнительные детали содержатся в файлах, расположенных по пути \docs\zh\. Убедитесь, что вы прочитали документацию перед началом процесса портирования.# 4. Поддержка после внедрения

  • Flash хранение: В EasyFlash добавлены функции записи и чтения логов, что позволяет EasyLogger работать с ними без каких-либо проблем. Это делает хранение логов более удобным в фоновом режиме, а также обеспечивает возможность поиска исторических записей;

  • Конфигурационные файлы: конфигурационные файлы в файловой системе;

  • Передача файлов: поддержка передачи файлов по объему и времени в файловой системе;

  • Логгер: разработка кросс-платформенного логгера, совместимого с Linux, Windows, Mac системами, который позволяет просматривать, фильтровать (поддерживается регулярное выражение), сортировать и сохранять логи при запуске. Фронтенд: HTML5 + Bootstrap + AngularJS + NW.js, бэкенд: Rust + iron + rust-websocket + serial-rs;

  • Асинхронная запись: в настоящее время запись логов происходит синхронно относительно пользователя, что делает программу простой и исключает проблему перезаписи логов. Однако на платформах с низкой скоростью вывода это может замедлить работу программы из-за добавления функции логирования. Поэтому позднее будет добавлена асинхронная запись, а фильтрация ключевых слов также будет выполнена в рамках асинхронной записи;- [ ] Arduino: добавление библиотеки для Arduino и предоставление демонстрационного примера;

5. ЛицензияЛицензия MIT, Copyright (c) armink.ztl@gmail.com

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Высокопроизводительная библиотека журналов на C/C++, ультралёгкая (ROM < 1,6 КБ, RAM < 0,3 КБ). Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Armink-EasyLogger.git
git@api.gitlife.ru:oschina-mirror/Armink-EasyLogger.git
oschina-mirror
Armink-EasyLogger
Armink-EasyLogger
master