Перейти к содержимому
ГоМастер

Поиск по урокам

Найдите урок, курс, термин или раздел

zerolog ~12 часов 25 уроковпрактика

Zerolog: полный курс по быстрому логгеру для Go

Zerolog — логгер без аллокаций: событие собирается из полей за микросекунды, поэтому им логируют даже горячие пути HTTP-роутеров. Если zap кажется громоздким, а slog — медленным на горячем пути, zerolog — ваш выбор.

В курсе — вся библиотека: JSON-события и уровни, поля и контекстные поля, ConsoleWriter для разработки, запись в файлы и ротация lumberjack, сублоггеры, HTTP-логи, sampling против спама, мост со slog и тесты. Каждый урок — код с построчным разбором, честные грабли и интерактивные задания.

Чему научитесь

Чему научитесь

  • Писать структурированные JSON-логи с нуля аллокаций
  • Выбирать уровни и поля события осознанно
  • Настраивать ConsoleWriter для dev и JSON для прода
  • Строить сублоггеры и контекстные поля на запрос
  • Ротировать файлы, прореживать спам, связывать с slog
  • Тестировать логи и собирать их Loki/ELK

Для кого курс

  • Backend-разработчикам, которым нужен быстрый JSON-логгер
  • Тем, кто уже прошёл zap или slog и хочет сравнить подходы
  • Командам, оптимизирующим горячие пути API

Что понадобится

  • Базовый синтаксис Go: функции, структуры, io.Writer
  • Желательно знакомство с любым логгером — быстрее поймёте разницу

Программа курса: 25 уроков

  1. 1Знакомство: логгер без аллокацийfmt.Println в проде, benchmark-таблица zerolog, цепочечный API.~16 мин · zerolog golang, знакомство zerolog
  2. 2Первый лог: New и JSON-событиеzerolog.New(os.Stdout), Info().Msg(), Sync и stdout.~18 мин · zerolog первый лог, zerolog new
  3. 3Уровни: Trace, Debug, Info, Warn, Error, FatalSetGlobalLevel, что логировать на каждом уровне.~18 мин · zerolog уровни, уровни логов go
  4. 4Поля события: Str, Int, Err, DurТипизированные поля, Any, Err — ошибки как данные.~18 мин · zerolog поля, zerolog err
  5. 5ConsoleWriter: вывод для людейЧитаемый формат в dev, PartsOrder, Форматировщики полей.~18 мин · zerolog consolewriter, красивые логи go
  6. 6Logger.With: контекстные поляПредзаданные поля, логгер на модуль и на запрос.~18 мин · zerolog with, контекстные поля логов
  7. 7Условные поля и AnyСобираем событие по условию, цена полей, bool-хелперы.~16 мин · zerolog any, условное логирование
  8. 8Запись в файл и io.Writeros.OpenFile, мультирайт, stderr для ошибок.~18 мин · zerolog в файл, логи в файл go
  9. 9Ротация: lumberjack рядом с zerologMaxSize, MaxBackups, Compress: диск не переполнится.~18 мин · lumberjack zerolog, ротация логов go
  10. 10Сублоггеры: логгер на модульWith().Str("module"), именование, тесты конфигурации.~16 мин · zerolog сублоггеры, логгер модуля go
  11. 11Логирование HTTP: middlewareМетод, путь, статус, длительность, request_id.~20 мин · zerolog http middleware, логи http запросов
  12. 12Ошибки: Err, Stack и AnErrВложенные ошибки, stacktrace, когда вызывать Stack().~18 мин · zerolog stack, логирование ошибок go
  13. 13Производительность: ноль аллокацийb.Run-разбор, Disabled для горячего пути, bool-хелперы.~18 мин · zerolog производительность, быстрое логирование
  14. 14Sampling: прореживание потокаBurstSampler, PeriodicSampler: спам не потопит диск.~18 мин · zerolog sampling, sampling логов
  15. 15Горутины: потокобезопасность и порядокОдин логгер на сервис, гонки, pprof-проверка.~16 мин · zerolog горутины, потокобезопасный логгер
  16. 16Конфигурация по окружениюLOG_LEVEL, dev против prod, Viper и дефолты.~16 мин · zerolog конфигурация, log level env
  17. 17Мост с slog: AdapterСловарь в обе стороны, когда нужен мост.~18 мин · zerolog slog adapter, мост логгеров go
  18. 18Секреты: маскирование и ПДнtoken, password, Authorization: что скрываем всегда.~18 мин · маскирование логов, zerolog секреты
  19. 19Структура JSON: ключи и вложенностьTimestampFieldName, Array(), Dict(), сообщения для Loki.~18 мин · zerolog json формат, json логи структура
  20. 20Тестирование логов: writer в буферПроверка полей, уровня и порядка в тестах.~18 мин · тесты логов zerolog, проверка логов go
  21. 21Логи и метрики PrometheusСчётчик рядом с событием, алерты, дедупликация.~16 мин · логи и метрики zerolog, prometheus логи
  22. 22trace_id и корреляция запросовTrace ID из заголовка, склейка строк одного запроса.~18 мин · zerolog trace id, корреляция логов
  23. 23Антипаттерны: как логи теряют смыслMsgf вместо полей, спам в цикле, Sprintf-мышление.~18 мин · антипаттерны логов, zerolog ошибки
  24. 24На проде: journald, Docker, сборdocker logs, драйверы, ротация на хосте.~18 мин · zerolog продакшен, логи docker go
  25. 25Итоговый проект: логгер для CLI-сервисаКонфиг, уровни, файл+stdout, тесты и сбор.~24 мин · zerolog проект, логгер сервиса go

Вопросы о курсе

Почему zerolog быстрее zap и slog?

Событие zerolog собирается в буфер без структур и отражений: поля пишутся прямо в JSON-байты. В курсе есть урок с бенчмарками и честными оговорками, где скорость не главное.

Код запускается в песочнице?

Как и все библиотечные курсы сайта — код разбирается построчно в браузере, а песочница каждого урока открывается с тематической программой на чистом Go: принципы уровней и полей можно потрогать сразу.

Чем курс отличается от курсов zap и slog?

Тем же методом, другой библиотекой: zerolog цепочечный, без Sugared-режимов и без Handler-интерфейсов. Пройдёте все три — станете тем человеком, который выбирает логгер для команды.