ว่าง ๆ นั่งเปลี่ยน 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

มาลองใช้งานกันหน่อย

ตัวอย่างของ log message

ใช้งานง่าย ๆ กับ zap
แต่มี feature อื่น ๆ อีกเยอะเลย ไว้ลองใช้งานต่อไป
เนื่องจากงานใช้เท่านี้เอง

ปล. เห็นเขาว่าเร็ว และ ใช้ resource น้อย แต่ไม่ได้จับวัดนะ