TypeScript:
การบันทึกล็อก

วิธีการ:

ใน TypeScript, คุณสามารถนำไปใช้การบันทึกข้อมูลพื้นฐานได้อย่างง่ายดายโดยใช้วิธีการของคอนโซลหรือรวมการบันทึกข้อมูลขั้นสูงกว่าด้วยไลบรารีอย่าง winston หรือ pino นี่คือตัวอย่างพื้นฐานโดยใช้ console.log และตัวอย่างที่ขั้นสูงกว่าด้วย winston

// การบันทึกคอนโซลพื้นฐาน
console.log('Info: เริ่มต้นแอปพลิเคชัน...');
console.error('Error: ไม่สามารถเรียกข้อมูลได้.');

// ตัวอย่างผลลัพธ์
// Info: เริ่มต้นแอปพลิเคชัน...
// Error: ไม่สามารถเรียกข้อมูลได้.

สำหรับการบันทึกข้อมูลที่แข็งแกร่งกว่า, มาตั้งค่า winston กัน:

import { createLogger, format, transports } from 'winston';

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
    format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
  ),
  transports: [
    new transports.Console(),
    new transports.File({ filename: 'combined.log' })
  ]
});

logger.info('เซิร์ฟเวอร์เริ่มทำงาน!');
logger.warn('เตือนพื้นที่ดิสก์ต่ำ.');
logger.error('ไม่สามารถเชื่อมต่อกับฐานข้อมูล.');

// ตัวอย่างผลลัพธ์ใน combined.log
// 2023-01-20 14:42:07 info: เซิร์ฟเวอร์เริ่มทำงาน!
// 2023-01-20 14:42:09 warn: เตือนพื้นที่ดิสก์ต่ำ.
// 2023-01-20 14:42:12 error: ไม่สามารถเชื่อมต่อกับฐานข้อมูล.

ลงลึก:

แนวคิดของการบันทึกการเข้าใช้งานในบริบทของการคอมพิวเตอร์เริ่มแรกตั้งแต่ยุคแรก ๆ ของการเขียนโปรแกรม ซึ่งคำว่า “logbook,” ระบบบันทึกข้อมูลทางนอติคัล, เป็นที่มาของมัน ในอดีต, เหตุการณ์ของโปรแกรมมักถูกบันทึกไปยังการพิมพ์แบบกายภาพหรือการแสดงผลของเทอร์มินัล โดยเฉพาะอย่างยิ่งในยุคเมนเฟรม

ก้าวไปข้างหน้าถึงวันนี้ และคุณจะมีเครื่องมือและไลบรารีมากมายที่ให้บริการสำหรับความต้องการด้านการบันทึกข้อมูลต่าง ๆ ตั้งแต่ไฟล์ข้อความแบบง่ายไปจนถึงระบบจัดการบันทึกข้อมูลที่ซับซ้อน ทางเลือกอื่น ๆ แทน winston ประกอบด้วย pino ซึ่งมีประสิทธิภาพสูง, และ Bunyan ซึ่งใช้ JSON เป็นพื้นฐาน เมื่อทำงานกับ Node.js, ไลบรารีการบันทึกมักจะให้กลไกสตรีมเพื่อกระจายบันทึกไปยังปลายทางต่าง ๆ สนับสนุนการหมุนเวียนของบันทึก, และนำเสนอตัวกำหนดรูปแบบที่กำหนดเองได้

ในแง่ของการนำไปใช้งาน, ข้อความบันทึกมักจะประกอบด้วย timestamp, ระดับความรุนแรง (เช่น info, warn, error), และข้อความจริงที่เป็นข้อความ การปฏิบัติที่ดีในการบันทึกข้อมูลแนะนำว่าควรแยกประเภทระดับความรุนแรงอย่างเหมาะสม, หลีกเลี่ยงข้อมูลที่ละเอียดอ่อนในบันทึก, และพิจารณาถึงผลกระทบด้านประสิทธิภาพในแอปพลิเคชันที่มีการจัดการข้อมูลจำนวนมาก

ดูเพิ่มเติม: