Что: fa9261a8194ececa763edd7b882beafb112e120a
Когда: 2023-08-28 17:19:57+03:00
Темы: go
Структурированное логирование в Go https://go.dev/blog/slog https://pkg.go.dev/log/slog https://github.com/golang/example/blob/master/slog-handler-guide/README.md Про slog я давно уже слышал что наконец-то что-то более навороченное чем родной log добавят в новую версию Go. Но не вчитывался даже в документацию, поэтому и не обратил внимание на возможность объединять key-value значения в группы. Мне казалось этого нет, поэтому заменой логирования который умеет делать RFC 5424 структурированные записи. Сегодня уже вплотную начал рассматривать slog. Группы есть -- а значит RFC 5424 задачи может покрыть. С первого раза и первого компилирования написал slog.Handler который бы сохранял записи в recfile формате. Очень удобно и просто работать со всем что даёт slog. И разные уровни, и key-value и просто сообщения, и With/WithAttrs, и WithGroup -- всё тривиально но удобно. Заморочены на производительности -- приятно. И явно типизированные данные в качестве value можно логировать, что здорово. В двух проектах мою самопальную систему структурированного логирования можно полностью заменять на slog. Я не поклонник RFC 5424 сейчас, но его внедрял и в ivi и на следующей работе. Сам формат сейчас перестал нравится тем, что многострочные данные уже не засунуть, типа traceback-ов, если только не изобретать дополнительный формат или экранирование. Мне нравится идея записей из recfile-ов, где и многострочные можно засовывать и читается это легко человеку и даже готовые утилиты для работы есть.
Сгенерирован: SGBlog 0.34.0