История изменений
Исправление witaway, (текущая версия) :
По крайней мере, такой подход с потоками, реализованными посредством лонг поллинга сишных функций, очень легко может быть интегрирован в любой ЯП, не зависит от окружения и не требует лишних зависимостей.
Со стороны разработчика конечного приложения требуется всего-лишь написать простейший цикл и вынести его в отдельный поток. Как-то примерно так:
- В цикле вызвать си_получить_лог()
- Разобрать полученную структуру. Это может быть сишная структура, тогда надо предоставить её определение. Ещё проще, если логи представляют сериализованный массив байт. Тогда нужно предоставить функцию десериализатор. Если сериализация в JSON или protobuf — ещё проще.
- Передать в свой высокоуровневый логгер данные.
- Повторить.
В конечном итоге, внешнему разработку можно просто в доках выкинуть короткий сниппет.
Исправление witaway, :
По крайней мере, такой подход с потоками, реализованными посредством лонг поллинга сишных функций, очень легко может быть интегрирован в любой ЯП, не зависит от окружения и не требует лишних зависимостей.
Со стороны разработчика конечного приложения требуется всего-лишь написать простейший цикл и вынести его в отдельный поток. Как-то примерно так:
- В цикле вызвать си_получить_лог()
- Разобрать полученную структуру. Это может быть сишная структура, тогда надо предоставить её определение. Ещё проще, если логи представляют сериализованный массив байт. Тогда нужно предоставить функцию десериализатор. Если сериализация в JSON или protobuf — ещё проще.
- Передать в свой высокоуровневый логгер данные.
- Повторить.
Исправление witaway, :
По крайней мере, такой подход с потоками, реализованными посредством лонг поллинга сишных функций, очень легко может быть интегрирован в любой ЯП, не зависит от окружения и не требует лишних зависимостей.
Со стороны разработчика конечного приложения требуется всего-лишь написать простейший цикл и вынести его в отдельный поток. Как-то примерно так:
- В цикле вызвать си_получить_лог()
- Разобрать полученную структуру. Это может быть как сишная структура, тогда надо предоставить её определение. Ещё проще, если логи представляют сериализованный массив байт. Тогда нужно предоставить функцию десериализатор. Если сериализация в JSON или protobuf — ещё проще.
- Передать в свой высокоуровневый логгер данные.
- Повторить.
Исходная версия witaway, :
По крайней мере, такой подход с потоками, реализованными посредством лонг поллинга сишных функций, очень легко может быть интегрирован в любой ЯП, не зависит от окружения и не требует лишних зависимостей.
Со стороны разработчика конечного приложения требуется всего-лишь написать простейший цикл и вынести его в отдельный поток. Как-то примерно так:
- В цикле вызываешь си_получить_лог()
- Разобрать полученную структуру. Это может быть как сишная структура, тогда надо предоставить её определение. Ещё проще, если логи представляют сериализованный массив байт. Тогда нужно предоставить функцию десериализатор. Если сериализация в JSON или protobuf — ещё проще.
- Передать в свой высокоуровневый логгер данные.
- Повторить.