TypeScript:
רישום פעולות (לוגים)

איך לעשות:

ב-TypeScript, ניתן ליישם בקלות לוגינג בסיסי באמצעות שיטות של console או לשלב לוגינג מתקדם יותר עם ספריות כמו winston או pino. להלן דוגמה בסיסית באמצעות console.log ודוגמה מתקדמת יותר עם winston.

// יומנות בסיסית של console
console.log('Info: Starting the application...');
console.error('Error: Unable to retrieve data.');

// פלט לדוגמה
// Info: Starting the application...
// Error: Unable to retrieve data.

ללוגינג יותר עמיד, בואו נקים את 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('Server started!');
logger.warn('Low disk space warning.');
logger.error('Failed to connect to database.');

// פלט לדוגמה ב-combined.log
// 2023-01-20 14:42:07 info: Server started!
// 2023-01-20 14:42:09 warn: Low disk space warning.
// 2023-01-20 14:42:12 error: Failed to connect to database.

עיון נוסף:

המושג לוגינג בהקשר של מחשוב מתייחס לימים הראשונים של תכנות, שם המונח בעצמו נגזר מ"יומן הסיפון", מערכת תיעוד לשימור רשומות של ספינות. בדרך כלל, אירועים בתוכנית רושמו להדפסות פיזיות או לפלטים של טרמינל, במיוחד בתקופת עידן המיינפריים.

קדימה להיום, ויש לך כמות עצומה של כלים וספריות לרשותך שמספקים פתרונות לכל צורך לוגינג, החל מקבצי טקסט פשוטים ועד מערכות ניהול לוגים מורכבות. חלופות ל-winston כוללות את pino, הנהדרת בביצועים גבוהים, ואת Bunyan, המבוססת על JSON. כאשר עובדים עם Node.js, ספריות לוגינג לעיתים קרובות מספקות מנגנוני זרם להכוון יומנים ליעדים שונים, תמיכה ברוטציה של היומנים, ועיצובים הניתנים להתאמה אישית.

מבחינה טכנית, הודעת לוג בדרך כלל מכילה חותמת זמן, רמת חומרה (כמו info, warn, error), וההודעה עצמה. מנהג טוב בלוגינג ממליץ לקטלג נכון את רמות הלוג, להימנע מנתונים רגישים ביומנים, ולשקול השלכות ביצועים ביישומים עם גודל רב של תעבורה.

ראה גם: