عن المشروع
# 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 أو ترخيص تجاري متاح من صاحب حقوق النشر.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.