প্রকল্প সম্পর্কে

# StormByte Logger StormByte Logger হলো StormByte C++ স্যুটের জন্য একটি স্ট্রিমিং লগার, যা C++26 এবং CMake 3.28+ এর জন্য তৈরি। এটি একটি `Log` ফ্যাসাড প্রদান করে যেখানে `operator<<` স্ট্রিমিং, সিভিয়ারিটি লেভেল, কাস্টমাইজযোগ্য হেডার, থ্রেড-লোকাল কম্পোনেন্ট, গ্রুপ, ANSI রঙ, রিড্যাকশন, হেক্স ডাম্প, মানুষের-পাঠ্য সংখ্যা এবং একটি থ্রেড-সেফ `ThreadedLog` ভ্যারিয়েন্ট রয়েছে। ## প্রধান বৈশিষ্ট্য - **লেভেল**: `LowLevel` থেকে `Fatal` পর্যন্ত ক্রমানুসারে; `Warning`, `Error`, এবং `Fatal` সর্বদা এমিট হয়। - **হেডার**: `%L` (লেভেল), `%T` (টাইমস্ট্যাম্প), `%i` (থ্রেড আইডি), `%c` (কম্পোনেন্ট পাথ), `%g` (গ্রুপ) এর মতো ফরম্যাট টোকেন। - **কম্পোনেন্ট**: হায়ারার্কিক্যাল পাথের জন্য থ্রেড-লোকাল স্ট্যাক (যেমন, `Multimedia/Decoder`)। - **স্কোপ**: লাইব্রেরিগুলির জন্য স্টিকি-পাথ ফ্যাসাড যা TLS স্ট্যাক ম্যানিপুলেশন এড়ায়। - **গ্রুপ**: লাইন-স্কোপড লেবেল যা নিউলাইন দ্বারা ক্লিয়ার হয়। - **রঙ**: প্রতি লেভেল বা কম্পোনেন্ট পাথের জন্য ANSI রঙ, ডিফল্টভাবে নিষ্ক্রিয়। - **ফরম্যাট**: স্থায়ী সাধারণ/কম্পোনেন্ট ফরম্যাট প্লাস নেস্টেড টেম্পোরারি ফরম্যাট। - **রিড্যাকশন**: প্রথম/শেষ N অক্ষর রাখুন বা সম্পূর্ণ মাস্ক করুন। - **হেক্স/বাইনারি**: টেক্সট হেক্স ডাম্প এবং বাইনারি পেলোডের জন্য Base64/HexDump। - **ThreadedLog**: প্রতি লজিক্যাল লাইনে একটি লক; এনকোডিং লক করার আগে ঘটে। ## ব্যবহারের উদাহরণ ```cpp #include <StormByte/logger/log.hxx> #include <StormByte/logger/threaded_log.hxx> using namespace StormByte::Logger; Log log(std::cout, Level::Info, "[%L] %T"); log << Level::Info << "hello" << std::endl; auto tlog = std::make_shared<ThreadedLog>(std::cout, Level::Debug, "[%L] %T"); tlog << Level::Notice << "opened source" << std::endl; ``` ## ইনস্টলেশন একটি C++26 কম্পাইলার, CMake 3.28+, এবং StormByte-String 1.0.0+ প্রয়োজন (যা StormByte Base 2.0.0+ ভেন্ডর করে)। ```sh git clone --recursive https://github.com/StormBytePP/StormByte-Logger.git cd StormByte-Logger cmake -S . -B build cmake --build build ``` ## লাইসেন্স LGPL v3 অথবা কপিরাইট ধারকের কাছ থেকে বাণিজ্যিক লাইসেন্স পাওয়া যায়।