TypeScript:
লগিং

কিভাবে:

TypeScript-এ, আপনি console পদ্ধতি ব্যবহার করে মৌলিক লগিং সহজেই বাস্তবায়ন করতে পারেন অথবা winston বা pino এর মতো আরও উন্নত লগিং লাইব্রেরি সহ ইন্টিগ্রেট করতে পারেন। এখানে console.log ব্যবহার করে একটি মৌলিক উদাহরণ এবং winston সহ একটি আরও উন্নত উদাহরণ দেওয়া হলো।

// মৌলিক console লগিং
console.log('তথ্য: অ্যাপ্লিকেশন শুরু...');
console.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: ডাটাবেসে সংযোগ ব্যর্থ হয়েছে।

গভীর ডুব:

কম্পিউটিং এর প্রসঙ্গে লগিং এর ধারনা প্রোগ্রামিং এর প্রারম্ভিক দিনগুলি থেকে এসেছে, যেখানে এই শব্দটি ‘লগবুক’, একটি নৌকায়িক রেকর্ড-রাখার সিস্টেম থেকে উদ্ভূত। ঐতিহাসিকভাবে, প্রোগ্রাম ঘটনা সাধারণত ভৌত প্রিন্টআউট বা টার্মিনাল আউটপুটে লগ করা হতো, বিশেষ করে মেইনফ্রেম যুগে।

আজকে এসে, আপনারা বিভিন্ন লগিং প্রয়োজনের জন্য যে সরঞ্জাম এবং লাইব্রেরিগুলি আছে তা সরল টেক্সট ফাইল থেকে জটিল লগ ম্যানেজমেন্ট সিস্টেম পর্যন্ত বিস্তৃত। winston এর বিকল্পগুলির মধ্যে pino আছে, যা উচ্চ কর্মক্ষমতা দেয়, এবং Bunyan, যা JSON-ভিত্তিক। Node.js এর সাথে কাজ করার সময়, লগিং লাইব্রেরিগুলি প্রায়শই ভিন্ন গন্তব্যস্থলে লগ ফানেল করার জন্য স্ট্রিম পদ্ধতি, লগ রোটেশনের জন্য সমর্থন, এবং কাস্টমাইজেবল ফর্ম্যাটার প্রদান করে।

বাস্তবায়নের দিক থেকে, লগ বার্তাগুলিতে সাধারণত একটি সময়সূচক, একটি গুরুত্বপূর্ণ স্তর (যেমন তথ্য, সতর্কতা, ত্রুটি), এবং প্রকৃত বার্তা থাকে। ভাল লগিং অনুশীলন লগ স্তরগুলি যথাযথভাবে শ্রেণিবিন্যাস, লগে সেন্সিটিভ ডেটা পরিহার করা, এবং উচ্চ-থ্রুপুট অ্যাপ্লিকেশনে কর্মক্ষমতা প্রভাবগুলি বিবেচনা করার সুপারিশ করে।

দেখুন এছাড়াও: