การบันทึกเป็นส่วนสำคัญอย่างยิ่งในแอปพลิเคชันใดๆ ไม่ว่าจะสร้างใน 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)