вот так:
slog.String("err", err.Error())
и это ужасно!
а ещё это совершенно неочевидно привыкшему в логрусу глазу
В смысле? slog.Info("hello", "err", errors.New("hello")) работает
это без типизации. так лучше не делать
А какие подводные камни?
Сделай свой конструктор Attr
если логи льеш в эластик, то при первом логе эластик построит индекс и сделает твое поле, например строкой, а потом если кто-то в это поле будет посылать числа - эластик проигнорирует это поле.
так я вроде как изабавился от своего интерфейса логера, ведь slog в std. меня просто напрягает err.Error()
Ну сделай func Err(err error) slog.Attr { return slog.String("err", err.Error) }
ну и шо получается…. slog.Error( "game over", slog.String() slog.Int() logger.Err() ) ужасно, не?
Обсуждают сегодня