ก่อนนี้เคยอธิบายเรื่อง proposal ของ Structured Logging มาแล้ว
ซึ่งตอนนี้ได้เพิ่มเข้ามาใน Go 1.21 ที่จะออกมาในเดือนสิงหาคมนี้
ดังนั้นเรามาลองใช้งานกันหน่อย ซึ่งประกอบไปด้วย package ดังนี้
- log/slog
- testing/slogtest สำหรับ validate slog handler
มาเริ่มกันเลย
ข้อมูล log message จะอยู่ในรูปแบบของ struct Record ประกอบไปด้วย
[gist id="1ef073806ffff43166913f4f164f75fe" file="record.go"]
ใช้งานแบบ Text และ JSON
สามารถจัดการข้อมูลของ log ในรูปแบบ key-value ผ่าน attribute ได้เลย
รวมทั้งยังสามารถจัดกลุ่มของ log ได้เช่น
ต้องการ log ในรูปแบบนี้
สามารถเขียน code ด้วย slog ได้ดังนี้
[gist id="1ef073806ffff43166913f4f164f75fe" file="demo_02.go"]ตัวอย่างของ log message ที่ได้ออกมา
[gist id="1ef073806ffff43166913f4f164f75fe" file="2.txt"]Reference Websites