Skip to content

termith/json-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Сервис пишет в лог строки, каждая из которых является JSON словарем примерно такого содержания:

{"@fields": {"uuid": "92c4c7cc-f00c-4c77-bc71-3687d33c225d", "level": "INFO", "status_code": 200, "content_type": "application/json", "path": "/v1/items/1/", "method": "PUT", "name": "django.http"}, "@timestamp": "2015-12-15T05:45:39+00:00", "@source_host": "c57872949172", "@message": "Request processed"}

Необходимо написать на Python консольную утилиту, которая будет читать из stdin строки такого лога и выводить их в отформатированном виде. По умолчанию формат вывода такой: "[@timestamp] @fields.level @message" но нужно сделать так, чтобы формат можно было поменять, указав утилите файл с шаблоном. Для шаблонизации можно использовать готовый движок вроде jinja2 или mustache.

Кроме того, утилита должна позволять фильтровать записи по @level (хорошо будет, если она позволит фильтровать по любым полям).

Пример использования утилиты в консоли, для чтения из лога ошибок "на-лету":

tail -f /var/log/service.log | json-log --format template.j2 --filter @fields.level=ERROR

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages