কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রামে লগিং (Logging)


যখনই আমরা একটি সফ্টওয়্যার বিল্ড করে রান করি, তখন কিছু এরর বা এক্সেপশন ঘটতে পারে যা সফ্টওয়্যারের সাধারণ এক্সিকিউশন বাধা দেয়। লগিং (Logging) আমাদের সাহায্য করে সফ্টওয়্যার চলাকালীন ঘটনা বা ইভেন্টগুলো ট্র্যাক রাখতে। লগিং সাধারণত সফ্টওয়্যার ডেভেলপমেন্ট প্রসেসে, বিশেষ করে ডিবাগিং এবং রানিং-এ খুব উপকারী। যদি আমাদের লগিং সুবিধা না থাকে, এবং আমাদের প্রোগ্রাম ক্র্যাশ করে, তবে সমস্যার কারণ চিহ্নিত করা আমাদের জন্য খুব কঠিন হবে। ছোট প্রোগ্রামে আমরা সমস্যা বুঝতে পারি কিন্তু বাস্তবে জটিল প্রোগ্রাম থাকে, তাই ম্যানুয়ালি সমস্যাগুলো বুঝা প্রায় অসম্ভব। যদি সম্ভবও হয়, তবে এটি খুব সময়সাপেক্ষ।

পাইথনে একটি বিল্ট-ইন লগিং মডিউল আছে যা এই সমস্যা সমাধান করে। লগিং একটি খুব উপকারী টুল। এটি প্রোগ্রামের ফ্লো বুঝতে সাহায্য করে এবং আমাদের ডেভেলপমেন্ট প্রসেসে যেসব সমস্যা বা পরিস্থিতি চিন্তা করা হয়নি সেগুলো জানাতে পারে।

লগিং মডিউল (The logging Module)

পাইথনে লগিং মডিউল আমাদের ব্যবহারের জন্য রেডি। আমাদের শুধু এটি আমাদের প্রোগ্রামে ইম্পোর্ট করতে হবে, যা নিচের মতো করা হয়:

import logging

লগিং মডিউল আমাদের স্ট্যাটাস মেসেজ একটি ফাইলে বা অন্যান্য আউটপুট স্ট্রিমে লেখতে সাহায্য করে। ফাইলে অন্যান্য তথ্য থাকতে পারে, যেমন কোডের কোন অংশ এক্সিকিউট হয়েছে এবং কী সমস্যা 생겨েছে।

লগিং মডিউলের সাথে, আমরা "logger" ব্যবহার করতে পারি যেসব মেসেজ আমরা দেখতে চাই সেগুলো লগ করার জন্য। ডিফল্টভাবে, ৫টি লগ মেসেজ লেভেল রয়েছে যা ইভেন্টের সেভেরিটি নির্দেশ করে।

নিচে বর্ধমান ক্রমে ৫টি লেভেল দেওয়া হলো:

  • DEBUG - এটি ডিটেইল্ড ইনফরমেশন দেয়; সমস্যা ডায়াগনোজ করার সময় ব্যবহার করা হয়।

  • INFO - এটি কনফার্ম করতে ব্যবহৃত হয় যে সকল কিছু প্রত্যাশা অনুযায়ী সঠিকভাবে কাজ করছে।

  • WARNING - নাম অনুযায়ী, এটি এমন কিছু মেসেজ দেয় যা ভবিষ্যতে সমস্যা সৃষ্টি করতে পারে সেটি জানায়।

  • ERROR - এরর মেসেজ দেয়, যে অ্যাপ্লিকেশন বা সফ্টওয়্যার কোনো ফাংশন পারফর্ম করতে ব্যর্থ হয়েছে।

  • CRITICAL - এটি একটি সিরিয়াস সমস্যা জানায় যেটি ইঙ্গিত দেয় প্রোগ্রাম কাজ করা বন্ধ করতে পারে।

লগিং মডিউল আমাদের একটি ডিফল্ট লগার প্রদান করে, যা আমাদের আরও কনফিগারেশন ছাড়াই এগিয়ে যেতে দেয়।

উদাহরণ

import logging
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

আউটপুট

WARNING:root:This is a warning message
ERROR:root:This is an error message
CRITICAL:root:This is a critical message

দ্রষ্টব্য: info() এবং debug() মেসেজগুলো লোড হয়নি। এর কারণ হল ডিফল্টভাবে, লগার ওarning এবং তার উপরের সেভেরিটির মেসেজগুলো লোড করে। তাই আপনাকে সকল সেভেরিটির লগ মেসেজ লোড করতে হলে, লগারটি ম্যানুয়ালি কনফিগার করতে হবে।


  1. পাইথন প্রোগ্রামে ক্যালেন্ডার

  2. কুইকসর্টের পাইথন প্রোগ্রাম

  3. পাইথনে সিম্পল ইন্টারেস্ট (Simple Interest) ক্যালকুলেটর

  4. পাইথনে সিলেকশন সর্ট (Selection Sort)