การบันทึกเป็นส่วนสำคัญอย่างยิ่งในแอปพลิเคชันใดๆ ไม่ว่าจะสร้างใน Node.js หรือภาษาโปรแกรมอื่นๆ การบันทึกช่วยให้เราตรวจพบพฤติกรรมแปลก ๆ ของแอปพลิเคชันพร้อมกับข้อผิดพลาดและข้อยกเว้นแบบเรียลไทม์ หนึ่งควรใส่บันทึกตรรกะในแอปพลิเคชันของพวกเขาอย่างแน่นอน บันทึกเหล่านี้ช่วยให้ผู้ใช้ระบุข้อผิดพลาดและแก้ไขโดยด่วน
มี 5 ระดับการบันทึกที่แตกต่างกันซึ่งมีอยู่ในขณะนี้กับผู้ใช้ ระดับบันทึกเหล่านี้ใช้เพื่อกำหนดบันทึกประเภทต่างๆ และช่วยให้ผู้ใช้ระบุสถานการณ์ต่างๆ ได้ ระดับบันทึกต้องได้รับการกำหนดค่าอย่างระมัดระวังเพื่อให้ได้ข้อตกลงที่ดีที่สุดจากบันทึกเหล่านี้ -
-
ผิดพลาด
-
เตือน
-
ข้อมูล
-
ละเอียด
-
ดีบัก
มิดเดิลแวร์
คุณสามารถใส่มิดเดิลแวร์นี้ในไปป์ไลน์คำขอ เพื่อให้คุณสามารถใช้พลังของโมดูลดีบักเพื่อพิมพ์บันทึกได้โดยตรง ข้อได้เปรียบที่ดีที่สุดของโมดูลการดีบักคือเกือบทุกโมดูลใช้การดีบักสำหรับการพิมพ์บันทึก คุณสามารถใช้โมดูลดีบักเพื่อพิมพ์บันทึกและข้อผิดพลาด
มิดเดิลแวร์นี้ใช้เป็นหลักในการทำหน้าที่เป็นไปป์ไลน์กลาง - คุณสามารถส่งบันทึกในไปป์ไลน์นี้ ซึ่งจะพิมพ์ในไฟล์บันทึก คำขอและการตอบสนองจะถูกส่งผ่านไปยังมิดเดิลแวร์นี้เพื่อวัตถุประสงค์ในการบันทึก มีประโยชน์มากในแอป Express การตั้งค่ามิดเดิลแวร์นั้นง่ายดายและสามารถทำได้ในทุกเฟรมเวิร์กที่กำลังใช้งาน
การกำหนดค่าไฟล์สำหรับมิดเดิลแวร์
แอปพลิเคชัน
const app = express() const logMiddleware = require('my-logging-middleware') app.use(logMiddleware)
เราเตอร์
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)
ข้อผิดพลาด
const app = express(); const errorLoggingMiddleware = require('my-error-logging-middleware') app.use(errorLoggingMiddleware)
แพ็คเกจวินสตัน
คุณยังสามารถใช้แพ็คเกจ winston เพื่อวัตถุประสงค์ในการบันทึกได้อีกด้วย นอกจากนี้ยังมีระดับบันทึก แบบสอบถาม และตัวสร้างโปรไฟล์ที่แตกต่างกัน
แอปพลิเคชัน
const app = express() const winstonPackage = require('winston') const consoleTransport = new winstonPackage.transports.Console() const myWinstonOptions = { transports: [consoleTransport] } const logger = new winstonPackage.createLogger(myWinstonOptions) function logRequest(req, res, next) { logger.info(req.url) next() } app.use(logRequest) function logError(err, req, res, next) { logger.error(err) next() } app.use(logError)