Как стать автором
Поиск
Написать публикацию
Обновить

Структурированные логи + локальный стек вызовов: эволюция обработки ошибок в Go

Время на прочтение1 мин
Количество просмотров3K

return fmt.Errorf(«otherMethod %w with val %v», err, val)
}
return nil
}


Проблемы такого подхода:
— **Дублирование названий методов** в сообщениях об ошибках
— **Ручное добавление метаданных** (аргументы, переменные) в каждое место
— **Сложность отслеживания** места возникновения ошибки при нескольких точках выхода
— **Засорение кода** — повторяющийся boilerplate
— **Отсутствие структуры** — все метаданные упакованы в одной строке

Что если объединить мощь структурированного логирования (`slog`) с автоматическим сбором локального стека вызовов. Результат — чистый код и информативные логи.
d

## Решение: структурированные ошибки + автоматический стек

**Было:**
```go
func (*SomeObject) SomeMethod(val any) error {
if err := otherMethod(val); err != nil {
slog.Error(err, «val», val) // дублирование
return fmt.Errorf(«someMethod %w with val %v», err, val)
}
return nil
}
Теги:
Хабы:
Всего голосов 6: ↑5 и ↓1+7
Комментарии2

Публикации

Ближайшие события