C++:
লগিং
কিভাবে:
ধরুন আপনি একটি লিনাক্স বক্সে কাজ করছেন এবং আপনি চান আপনার লগগুলোকে সুন্দর কাঁচা বাক্সের মত একটি ফাইলে ফেলতে। এজন্য আপনাকে <iostream>
এবং <fstream>
লাইব্রেরিগুলি ফাইল অপারেশনের জন্য অন্তর্ভুক্ত করতে হবে। এখানে একটি দ্রুত উদাহরণ দেওয়া হলো:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ofstream logFile("appLog.txt", std::ios::app); // অ্যাপেন্ড মোডে ওপেন
if (!logFile.is_open()) {
std::cerr << "লগ ফাইল ওপেন করা সম্ভব হচ্ছে না!" << std::endl;
return 1;
}
logFile << "অ্যাপ্লিকেশন চালু হয়েছে" << std::endl;
// ... আপনার অ্যাপ লজিকের কোথাও
logFile << "একটি গুরুত্বপূর্ণ ইভেন্ট ঘটেছে" << std::endl;
// আপনার ফাইল স্ট্রীম বন্ধ করতে ভুলবেন না
logFile.close();
return 0;
}
আপনি যদি tail -f appLog.txt
দিয়ে আপনার লগ ফাইলটি দেখেন, আপনি দেখবেন:
অ্যাপ্লিকেশন চালু হয়েছে
একটি গুরুত্বপূর্ণ ইভেন্ট ঘটেছে
চমৎকার, আপনি ইভেন্টের একটি টাইমস্ট্যাম্প্ড রেকর্ড পেয়ে গেছেন!
গভীর ডুব
লগিং কম্পিউটিং যুগের শুরু থেকেই চলে আসছে, যার মূল প্রাচীন কম্পিউটারগুলি কি করছিল তা ট্রেস করতে কাগজে আক্ষরিক চিহ্ন দিয়ে। আধুনিক যুগে, এটি সব সফিস্টিকেটেড সফটওয়্যার সমাধান সম্পর্কে। আপনি সরাসরি ফাইলে লগিং করতে পারেন, যেমন উপরের দ্রুত এবং ময়লা উদাহরণে দেখানো হয়েছে, অথবা আপনি C++ এর Log4cpp বা Boost.Log এর মতো জটিল লগিং ফ্রেমওয়ার্কে মজা করতে পারেন; এই বড় ছেলেরা লগিং লেভেল, ফরম্যাট নিয়ন্ত্রণ, এবং আরও অনেক কিছু অফার করে।
লেভেলের কথা বলতে গেলে, লগিংয়ের সেরা প্রাক্টিসগুলি বিভিন্ন গুরুত্বের লেভেল—ইনফো, ডিবাগ, ওয়ার্নিং, এরর, ফ্যাটাল—ব্যবহার করা অন্তর্ভুক্ত করে; যাতে আপনি বাগ স্কোয়াশ করতে গেলে বা আপনার অ্যাপ কেন একটি মুডি কিশোরের মত আচরণ করছে তা বের করতে গেলে শব্দদূষণ ফিল্টার করতে পারেন।
পারফরম্যান্সের দিক থেকে, আপনার লগগুলি নিয়ে অবিচারী হবেন না। অতিরিক্ত লগিং আপনার বজ্রবেগে দৌড়ানো অ্যাপকে একটি শামুক ম্যারাথনে পরিণত করতে পারে, ফাইল সিস্টেমগুলি নিমজ্জিত করতে পারে, বা যদি আপনি ক্লাউড-ভিত্তিক হন তবে স্টোরেজ ফি খরচে আপনাকে টাকা খরচ করতে পারে। সঠিক ব্যালান্স খুঁজে পেতে চাবিকাঠি: আপনার যা দরকার, তাই লগ করুন, এবং আর কিছু না।
দেখুন এছাড়াও
যারা আপনার লগিং প্র্যাকটিসের সাথে অতিরিক্ত মাইলের পথ যেতে চান, তাদের জন্য এগুলি চেক করুন:
- কিছু হাভি-ডিউটি লগিং ফিচারের জন্য Boost.Log Library।
- আপনি যদি টেক জায়ান্টের চালকরা কীভাবে তাদের অ্যাপগুলিকে লগ করছে তা নিয়ে আগ্রহী হন, তাহলে Google’s glog library।
- একটি কনফিগারেবল লগিং মেকানিজমের জন্য The Log4cpp library।
এবং লগিংয়ের কেন এবং কিভাবে নিয়ে কিছুটা পটভূমি পড়তে, নিমজ্জিত হোন:
- এই Stack Overflow থ্রেডে logging best practices লগিংয়ের সেরা প্রাকটিস সম্পর্কে অভিজ্ঞ গভীর দিকগুলি দেবে।