การเขียนไปยังข้อผิดพลาดมาตรฐาน

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 ช่วยให้มีการแยกแยะที่ชัดเจนระหว่างผลลัพธ์มาตรฐานและข้อผิดพลาด