Что: 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-ов, где и многострочные можно засовывать и читается это легко человеку и даже готовые утилиты для работы есть. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5%20%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B2%20Go%20%28fa9261a8194ececa763edd7b882beafb112e120a%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0