Библиотека 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"}