Search
Write a publication
Pull to refresh

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

Reading time1 min
Views3K

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
}
Tags:
Hubs:
Total votes 6: ↑5 and ↓1+7
Comments2

Articles