ว่าง ๆ นั่งเปลี่ยน logger จากที่ใช้งาน logrus มาเป็น zap
โดยสิ่งที่ต้องการให้เหมือนเดิมคือ
- Log message ในรูปแบบของ JSON
- Log ออกไปทั้ง file แบบแยกรายวัน และออกที่ console
- เก็บเฉพาะ log level = error เท่านั้น
Code ที่เขียนออกมาของ log ตัวนี้ ประกอบไปด้วย
- LogFactory เป็น interface ช่วยให้เปลี่ยน implementation ของ log ได้ง่าย
- มี method NewLogger() สำหรับสร้าง logger จาก zap โดยส่ง path ของ log file เข้าไปได้
- กำหนด log level = error ขึ้นไป จะเรียกว่า high priority
- ใช้งาน JSONEncoder สำหรับกำหนดรูปแบบของ logg message ในรูปแบบ JSON
มาลองใช้งานกันหน่อย
[gist id="1826df3f233fd1ac3ca815e8e5011c3b" file="main.go"]ตัวอย่างของ log message
[gist id="1826df3f233fd1ac3ca815e8e5011c3b" file="1.txt"]ใช้งานง่าย ๆ กับ zap
แต่มี feature อื่น ๆ อีกเยอะเลย ไว้ลองใช้งานต่อไป
เนื่องจากงานใช้เท่านี้เอง
ปล. เห็นเขาว่าเร็ว และ ใช้ resource น้อย แต่ไม่ได้จับวัดนะ