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

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

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

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

ใครใช้กันบ้างไหมครับผมไม่เคยใช้หรอกจนว่ารู้ว่ามันมี ผมเลยลอง ทดสอบดู กลายเป็นว่า มันได้ผลลัพธ์แบบนี้ครับ

console.{บลาๆ}

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

Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).

มาใช้ 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 ไม่น่าเบื่ออีกต่อไป ขอบคุณครับ


personal-by-molysulfur/nestjs-logging
Contribute to personal-by-molysulfur/nestjs-logging development by creating an account on GitHub.
Documentation | NestJS - A progressive Node.js framework
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).