Как логировать stack trace?

Middle
446 просмотров
AFK Offer AI

Для получения stack trace текущей горутины используй debug.Stack() — возвращает []byte с полным стеком вызовов. В recovery middleware пишешь: if r := recover(); r != nil { log.Printf("panic: %v\n%s", r, debug.Stack()) }. Для structured logging (slog, zap): добавляешь stack trace как поле. runtime.Stack(buf, false) — стек текущей горутины, runtime.Stack(buf, true) — стеки всех горутин (осторожно, может быть огромным). В проде stack trace при панике — обязательная информация для дебага.

Следующий вопрос

Задача: реализуйте бинарный поиск