ep010 - a podcast by Artem Ostretsov

from 2020-04-17T07:35:47

:: ::

Не проследили за балансом микрофонов, поэтому Боря в этом выпуске звучал тише, чем обычно. Приносим извенения за неудобства.



Поговорили про логгирование в web-сервисах.



- пакет `log` стандартной библиотеки;

- написание своих кастомных логеров;

- упомянули наше решение [gluent-bit][1], которое мы используем для трансляции логов в Graylog;

- [logrus][2] в ~20 раз медленнее [zap][3];

- немного упомянули json-экстрактор Graylog;

- уровни логирования: DEBUG, INFO, WARN, ERROR, FATAL;

- особенности [zap][3]:

   - поддержка уровней логирования;

   - sampling для дедупликации потока логов;

   - не использует рефлексию и стандартный `json` пакет: работает через `append`;

   - `SugaredLogger` и `Logger`;

   - нет ротации логов.

- ротация логов через [lumberjack][4]

-
что имеет смысл логировать, а что выносить в мониторинг;

- `Reference-Id` для идентификации request-response и связанных операций;

- отказ от логирования запросов, не изменяющих состояние системы;

- унификация логов.



[1]: https://github.com/ostretsov/gluent-bit

[2]: https://github.com/sirupsen/logrus

[3]: https://github.com/uber-go/zap

[4]: https://godoc.org/gopkg.in/natefinch/lumberjack.v2

Further episodes of backend_podcast

Further podcasts by Artem Ostretsov

Website of Artem Ostretsov