SyslogAppender для log4esp

esp8266 print logging

Я хотел бы «объединить» две библиотеки Arduino, а именно log4Esp с одной стороны и Syslog с другой стороны, поэтому создаем приложение системного журнала для log4esp.

Моя проблема в том, что прототип Appender log4esp ожидает, что метод вернет экземпляр Print, в который он запишет сообщение.

Системный журнал нельзя использовать таким образом.

==> Вопрос: Как создать «буфер печати» / где узнать, какой класс расширяет Print?

, 👍1

Обсуждение

1 ответ


Лучший ответ:

4

Класс Print является базовым классом потоковой передачи Arduino. Stream является производным классом и добавляет возможность чтения. Print имеет только один абстрактный метод write для записи одного байта на выход или в буфер. Легко реализовать производный пользовательский класс.

Классы, полученные от Stream, являются классами для аппаратных и программных последовательных устройств, как HardwareSerial для Serial singletons и различных программных последовательных реализаций. От Stream происходит класс File библиотеки SD и SPIFFS, класс TwoWire для Wire singleton object и т. д.

Класс Client является производным от класса Stream и является базовым классом для стандартной сети TCP Arduino. Примерами производных классов являются EthernetClient, WiFiClient. Для UDP класс UDP является производным от Stream, конечно, с реализациями типа EthernetUDP, WiFiUDP.

Вы можете увидеть это в исходном коде в локальных папках исходных файлов или в репозиториях GitHub.

,

идеальный ответ, очень ясно! Спасибо @juraj, @Cerber