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

OSCHINA-MIRROR/jamin1214-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 Основные характеристики

  • Поддержка пользовательских способов вывода (например, терминал, файл, база данных, последовательный порт, 485, Flash и т. д.);
  • Возможность включения в содержание журнала уровня, метки времени, информации о потоке и процессе;
  • Журнал спроектирован как потокобезопасный и поддерживает асинхронный вывод и буферизованный вывод;
  • Поддерживает различные операционные системы (RT-Thread, UCOS, Linux, Windows и т.д.), а также голые металлические платформы;
  • Журналы поддерживают RAW-формат и hexdump;
  • Поддержка фильтрации по меткам, уровням и ключевым словам;
  • Различные уровни журналов могут отображаться разными цветами;
  • Расширяемость: поддержка расширения новых функций через плагины.

Примечание:

  1. RAW-формат: необработанный исходный журнал без форматирования.
  2. Метка: в программном обеспечении можно установить метки для журналов, которые необходимо распечатать, в соответствии с файлами, модулями, функциями и другими аспектами, чтобы реализовать классификацию журналов.

1.2 Плагины

  1. Flash: использование интерфейса операций библиотеки EasyFlash позволяет хранить журналы непосредственно во Flash без необходимости в файловой системе.
  2. File: поддерживает функции архивирования файлов, циклического сохранения файлов и другие связанные с файловыми журналами функции.
  3. Ожидайте новых плагинов...

1.3 Star & Fork

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

2. Использование

2.1 Настройка параметров

EasyLogger поддерживает методы фильтрации, форматы вывода и переключатели вывода.

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

Примечание: В настоящее время параметры конфигурации и методы вывода являются одноэлементными, то есть глобально поддерживается только один метод конфигурации. В этом режиме программное обеспечение будет проще, но не сможет поддерживать сложные методы вывода.

2.2 Уровни вывода

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

0.[A]:断言(Assert)
1.[E]:错误(Error)
2.[W]:警告(Warn)
3.[I]:信息(Info)
4.[D]:调试(Debug)
5.[V]:详细(Verbose)

2.2.1 Разнообразные журналы

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

TextColor

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 Log (сохранение журналов во Flash)

Рисунок ниже показывает процесс вывода журнала через консоль и сохранения выведенного журнала во Flash. После перезапуска можно прочитать сохранённый журнал, а затем очистить журнал Flash.

FlashLog

2.6.3 File Log (сохранение журнала в файл)

С помощью плагина File можно автоматически сохранять журналы в файлы. Для каждого файла можно задать размер, и когда размер превысит установленный предел, новый файл будет создан для хранения журналов. ### rust-websocket + serial-rs

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

  • [ ] Arduino. Планируется добавить библиотеку Arduino и предоставить демонстрационный пример её использования.

5. Лицензия

MIT Copyright (c) armink.ztl@gmail.com

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

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

Введение

EasyLogger — это сверхлёгкая (ROM<1.6K, RAM<0.3K) и высокопроизводительная библиотека журналов на C/C++. Она хорошо подходит для проектов программного обеспечения, чувствительных к ресурсам, таких как IoT-продукты, носимые устройства и умный дом. Расширить Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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