Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Golang :: เปลี่ยนมาใช้ zap สำหรับจัดการ logging

$
0
0

ว่าง ๆ นั่งเปลี่ยน 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="logger.go"]

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

[gist id="1826df3f233fd1ac3ca815e8e5011c3b" file="main.go"]

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

[gist id="1826df3f233fd1ac3ca815e8e5011c3b" file="1.txt"]

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

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


Viewing all articles
Browse latest Browse all 1997

Trending Articles