myRPC/libmysyslog
2025-05-22 23:04:49 +03:00
..
2025-03-15 23:47:56 +03:00
2025-03-15 23:47:56 +03:00
2025-05-22 23:04:49 +03:00
2025-03-16 21:03:58 +03:00

Библиотека libmysyslog на языке Си

Разработать расширяемую библиотеку libmysyslog на языке Си, которая сможет выводить данные в журнал в разных форматах. В рамках библиотеки необходимо реализовать функцию, через которую другие программы смогут выводить данные в журнал:

int mysyslog(const char* msg, int level, int driver, int format, const char* path);

Поддерживаются следующие уровни журналирования: DEBUG, INFO, WARN, ERROR, CRITICAL.

Для библиотеки libmysyslog реализованы в виде подключаемого плагина 2 драйвера (libmysyslog-text, libmysyslog-json): вывод в журнал в виде строки с разделителем и вывод в журнал в виде json строки.

Структура журнала в текстовом формате:

timestamp log_level process message

Пример журнала в текстовом формате:

1439482969 ERROR example-app this is an error

Структура журнала в формате JSON:

{"timestamp": ..., "log_level": ..., "process": ..., "message": ...}

Пример журнала в формате JSON:

{"timestamp":1439482969,"log_level":"ERROR","process":"example-app","message":"this is an error"}