ep010 / daily dev / логгирование

Описание к видео ep010 / daily dev / логгирование

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

Поговорили про логгирование в 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/...

Комментарии

Информация по комментариям в разработке