25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
# Библиотека libmysyslog на языке Си
|
||
Разработать расширяемую библиотеку libmysyslog на языке Си, которая сможет выводить данные в журнал в разных форматах. В рамках библиотеки необходимо реализовать функцию, через которую другие программы смогут выводить данные в журнал:
|
||
```c
|
||
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:
|
||
```json
|
||
{"timestamp": ..., "log_level": ..., "process": ..., "message": ...}
|
||
```
|
||
Пример журнала в формате JSON:
|
||
```json
|
||
{"timestamp":1439482969,"log_level":"ERROR","process":"example-app","message":"this is an error"}
|
||
``` |