ใช้ Nest แล้ว console.log() มันไม่เท่ อยากเท่ต้อง Logging

บทความนี้เป็นบทสบายๆ เราจะพามาเล่น logging
กัน เวลาเราเขียน javascript
แล้วอยาก log
ดู ข้อมูลหรือค่าต่างๆ เทสว่า โค๊ดที่เราเขียน มันถูกผ่านไหม อะไรหลายๆอย่าง ส่วนใหญ่ก็จะใช้ console.log
ใช่ไหมหละนอกจาก console.log
พวกนี้ แล้วมันรู้ไหมว่ามันยังมี log
พวกนี้อยู่
ใครใช้กันบ้างไหมครับผมไม่เคยใช้หรอกจนว่ารู้ว่ามันมี ผมเลยลอง ทดสอบดู กลายเป็นว่า มันได้ผลลัพธ์แบบนี้ครับ

ผลลัพธ์มันเป็นเหมือน text
ถ้าไม่ใส่ message
เข้าไปว่า log หรือ error
ไม่มีทางรู้เลยว่า log
แบบไหนออกมาผมจึงไปเจอ document
หนึ่งของเจ้าตัว nestjs
ครับ ซึ่งมันคือการทำ Logging
นั่นเองครับ

มาใช้ Logger กันครับ
เมื่อเราสร้าง project
กันมาแล้วให้ สร้างไฟล์ mylogger.service.ts ขึ้นมาครับ จากนั้นใส่โค๊ดลงตามนี้ได้เลย
ต่อไป ทำตัว logger
แยกออกมาเป็น module
ครับ
จากนั้นใน main.ts
ให้ใส่โค๊ดชุดนี้ลงไปครับ
การเรียกใช้
เราสามารถเรียกใช้ logger
ได้โดยการ injection
เข้าไปได้เลยครับโดยใน app.module.ts
ให้ injection
ตัว loggerModule
เข้าไปได้เลย
imports: [LoggerModule]
จากนั้นใน contructor
สามารถ เรียกเข้ามาได้เลย
constructor(private readonly myLogger: MyLogger) { }
ลอง log
ได้ตามตัวอย่างได้ล่างเลยครับ อยาก log
ประเภทไหน error warning debug verbose หรือ log
ก็ทำได้เลย
หลังจากนั้นสิ่งที่ได้จะเป็นอย่างด้านล่างนี้ครับ

.Log จะได้สีเขียว .error ก็สีแดง และจะรวม message ในบรรทัดถัดไปให้ด้วย .warrn สีเหลือง .debug สีชมพู สุดท้าย verbose ก็ ฟ้าครับ
นอกจาก Log อย่างเดียวก็สามารถปิดมันได้ด้วยนะ
เราสามารถปิด log
ประเภทที่เราไม่ต้องการได้โดยกำหนดใน NestFactory.create
ในกรณีที่เราไม่อยากให้ logging บ้างประเภทออกมาเราสามารถกำหนด แบบนี้ครับ
จากโค๊ดคือเราจะให้ logger
ประเภท warn
กับ verbose
แสดงออกมาครับ
เป็นยังไงกันบ้างครับ การทำ logging แบบนี้ ก็ช่วยทำให้ developer ทำการ debugging ได้สะดวกขึ้น ลองนำไปใช้ กันนะครับ จะทำให้การ debugging ไม่น่าเบื่ออีกต่อไป ขอบคุณครับ
