JavaScript:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีทำ:
ใน Node.js การเขียนลงใน stderr สามารถทำได้โดยใช้เมธอด console.error()
หรือโดยการเขียนตรงไปยัง process.stderr
นี่คือตัวอย่างที่แสดงวิธีการทั้งสอง:
// ใช้ console.error()
console.error('นี่คือข้อความแสดงผิดพลาด.');
// เขียนลงใน process.stderr โดยตรง
process.stderr.write('นี่คือข้อความแสดงผิดพลาดอีกอันหนึ่ง.\n');
ผลลัพธ์ตัวอย่างสำหรับทั้งสองวิธีจะปรากฏในสตรีม stderr ไม่ได้ผสมปนกับ stdout:
นี่คือข้อความแสดงผิดพลาด.
นี่คือข้อความแสดงผิดพลาดอีกอันหนึ่ง.
สำหรับการบันทึกข้อมูลที่ซับซ้อนกว่าหรือเฉพาะเจาะจงต่อแอปพลิเคชั่น โปรแกรมเมอร์ JavaScript หลายคนใช้ไลบรารีของบุคคลที่สามเช่น winston
หรือ bunyan
นี่คือตัวอย่างอย่างรวดเร็วโดยใช้ winston
:
ก่อนอื่น ติดตั้ง winston
ผ่าน npm:
npm install winston
จากนั้น กำหนดค่า winston
เพื่อบันทึกข้อผิดพลาดลงใน stderr:
const winston = require('winston');
const logger = winston.createLogger({
levels: winston.config.syslog.levels,
transports: [
new winston.transports.Console({
stderrLevels: ['error']
})
]
});
// การบันทึกข้อความแสดงผิดพลาด
logger.error('ความผิดพลาดได้ถูกบันทึกผ่าน winston.');
การตั้งค่านี้ให้ความมั่นใจว่า เมื่อคุณบันทึกข้อผิดพลาดโดยใช้ winston
มันจะไปที่ stderr ช่วยให้มีการแยกแยะที่ชัดเจนระหว่างผลลัพธ์มาตรฐานและข้อผิดพลาด