عن المشروع

# 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 أو ترخيص تجاري متاح من صاحب حقوق النشر.