Reference OS v8 5 دقائق قراءة ١ يوليو ٢٠٢٦ informational Light-Weight Logger: دليل عملي لمكتبة تسجيل مخصصة بلغات C++ وJava وC# ستتعلم كيفية تثبيت واستخدام Light-Weight Logger في C++ وJava وC# لتسجيل…

Show HN: C++, Java and C# light-weight-logger
اختر القسم الذي تحتاجه الآن
الفكرة التي تمنع التسرع
تعتقد أن مكتبات التسجيل إما معقدة (مثل log4j) أو بدائية (مثل printf)؟ هناك خيار ثالث: مكتبة خفيفة تمنحك تحكمًا كاملاً بالتنسيق والألوان.
قبل أن تطبق، اعرف أين تقف بالضبط
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
إذا كنت تبحث عن طريقة خفيفة وسريعة لتسجيل الأخطاء والمعلومات في تطبيقاتك بلون وتنسيق مخصص، فقد صادفت مشروع Light-Weight Logger على Hacker News. هذه المكتبة مفتوحة المصدر تدعم C++ وJava وC#، وتتيح لك تعريف تنسيق رئيسي (master format) ثم إضافة تنسيقات مسماة بألوان مختلفة. في هذا الدليل العملي، سنشرح لك كيفية تثبيتها واستخدامها، مع أمثلة تطبيقية تناسب المطور العربي في السعودية والخليج. ملاحظة: README الخاص بالمشروع غير واضح، لذا سنعتمد على بنية الكود لتقديم خطوات تقريبية.
مكتبة تسجيل خفيفة الوزن (Light-Weight Logger) تتيح للمطورين تعريف تنسيق رئيسي للسجلات (master style) ثم إنشاء تنسيقات مسماة (مثل ERROR, INFO, WARN) بألوان مختلفة. تدعم المكتبة حاليًا ثلاث لغات: C++ وJava وC#. الفكرة الأساسية: بدلاً من استخدام printf أو cout مع تنسيق ثابت، يمكنك تخصيص كل جزء من السجل (الوقت، الملف، رقم السطر، الرسالة) بلون منفصل.
من يحتاجها: مطور يعمل على مشروع صغير أو متوسط بلغة C++ أو Java أو C#، ويريد تحسين قراءة السجلات دون تعقيد المكتبات الثقيلة. من لا يحتاجها: من يحتاج تسجيلاً في ملفات (حاليًا لا تدعمه)، أو من يعمل بلغات أخرى (Python, JavaScript)، أو من يريد مكتبة مستقرة للإنتاج (المشروع جديد ولم يختبر بشكل واسع).
لأن README غير واضح، هذه الخطوات مبنية على هيكل المستودع:
git clone https://github.com/PenguineDavid/light-weight-logger.gitcd light-weight-loggerg++ -std=c++11 -o logger main.cpp (أو ملف الرأس المناسب). في Java: javac *.java. في C#: dotnet build أو csc *.cs../logger (أو java Main أو dotnet run).المشروع لا يستخدم ملف .env. الإعدادات تتم عبر الكود مباشرة: تعريف master_style كنص، ثم إضافة تنسيقات باستخدام add_format.
إليك مثال عملي بلغة C++:
#include "logger.h"
int main() {
Logger logger;
string master_style = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.add_format("ERROR", master_style, Colour::RED);
logger.log("ERROR", "هذا سجل خطأ تجريبي");
return 0;
}في Java:
Logger logger = new Logger();
String masterStyle = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.addFormat("ERROR", masterStyle, Colour.RED);
logger.log("ERROR", "هذا سجل خطأ تجريبي");في C#:
Logger logger = new Logger();
string masterStyle = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.AddFormat("ERROR", masterStyle, Colour.RED);
logger.Log("ERROR", "هذا سجل خطأ تجريبي");المكتبة واعدة لمشاريع التطوير السريع والنماذج الأولية. لكنها ليست جاهزة للإنتاج بعد (قلة الاختبارات، عدم دعم التسجيل في ملف). جربها في مشروع جانبي أولاً.
نعم، يدعم Unicode، لذا يمكنك كتابة رسائل عربية.
Light-Weight Logger أخف وزناً وأبسط، لكن spdlog أكثر استقراراً وميزات (تسجيل في ملف، تناوب السجلات).
حالياً لا يُنصح بذلك لحداثتها وقلة اختباراتها.
استخدم add_format مع اسم التنسيق وmaster_style واللون.
لا، حالياً تدعم الطرفية فقط.
C++ وJava وC#.
لا، هي في مرحلة مبكرة (0 نجوم على GitHub وقت كتابة المقال).
يمكنك فتح Issue أو Pull Request على GitHub.
Light-Weight Logger خيار جيد إذا كنت تبحث عن مكتبة تسجيل خفيفة وسهلة التخصيص لمشروعك الصغير. جربها في بيئة تطويرية، وساهم في تحسينها إذا أعجبتك. تذكر أن تشارك تجربتك مع المجتمع العربي.
خطوات عملية مرتبة من التشخيص إلى النتيجة
لماذا؟ للحصول على الكود المصدري للمكتبة
كيف؟ git clone https://github.com/PenguineDavid/light-weight-logger.git
الناتج: مجلد light-weight-logger على جهازك
لماذا؟ المكتبة تدعم ثلاث لغات ولكل مجلد منفصل
كيف؟ cd light-weight-logger ثم cd C++ أو Java أو C#
الناتج: الوصول إلى ملفات اللغة المختارة
لماذا؟ لتحويل الكود المصدري إلى ملف تنفيذي
كيف؟ في C++: g++ -std=c++11 -o logger main.cpp في Java: javac *.java في C#: dotnet build
الناتج: ملف تنفيذي (logger.exe أو Main.class أو dll)
لماذا؟ للتأكد من أن التثبيت يعمل
كيف؟ ./logger أو java Main أو dotnet run
الناتج: ظهور سجل اختباري ملون في الطرفية
لماذا؟ لتعديل الألوان والعناصر حسب احتياجك
كيف؟ تعديل master_style وإضافة تنسيقات باستخدام add_format
الناتج: سجلات مخصصة بألوان مختلفة لكل مستوى
حوّل القراءة إلى تنفيذ سريع
#include "logger.h"
int main() {
Logger logger;
string master_style = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.add_format("ERROR", master_style, Colour::RED);
logger.log("ERROR", "رسالة خطأ");
return 0;
}Logger logger = new Logger();
String masterStyle = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.addFormat("ERROR", masterStyle, Colour.RED);
logger.log("ERROR", "رسالة خطأ");Logger logger = new Logger();
string masterStyle = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.AddFormat("ERROR", masterStyle, Colour.RED);
logger.Log("ERROR", "رسالة خطأ");اعرف أين يتعثر الناس وكيف تتجنب ذلك
ماذا تفعل حسب حالتك؟
إذا: إذا كنت تستخدم C++
إذن: اذهب إلى مجلد C++ واتبع خطوات التجميع
إذا: إذا كنت تستخدم Java
إذن: اذهب إلى مجلد Java واستخدم javac
إذا: إذا كنت تستخدم C#
إذن: اذهب إلى مجلد C# واستخدم dotnet build
إذا: إذا كنت تحتاج تسجيل في ملفات
إذن: ابحث عن بديل مثل spdlog أو NLog
جدول صغير يمنع التسويف
نقاط مختصرة ترجع لها لاحقاً
1. المكتبة تدعم C++ وJava وC# فقط.
2. لا تدعم التسجيل في ملفات حالياً.
3. تستخدم ألوان ANSI في الطرفية.
4. المشروع جديد وليس له نجوم على GitHub.
5. الإعدادات تتم عبر الكود وليس ملف .env.
6. يمكن تخصيص لون كل جزء من السجل (وقت، ملف، رسالة).
7. تدعم Unicode لذا يمكن استخدام العربية.
8. خفيفة الوزن ولا تتطلب مكتبات خارجية.
9. مناسبة للنماذج الأولية والمشاريع الصغيرة.
إجابات مباشرة على ما يبحث عنه الزائر
تعريفات مختصرة تمنع الالتباس
نص يحدد تنسيق السجل الرئيسي باستخدام عناصر نائبة مثل %C للون و%N للاسم.
دالة لإضافة تنسيق مسمى (مثل ERROR) بلون معين.
فئة أو تعداد لتحديد الألوان (RED, GREEN, YELLOW, إلخ).
استخدمها كمسارات متابعة داخل نفس الموضوع
تحول القارئ: من مطور يعتمد على printf أو cout لتسجيل الأخطاء، إلى مطور يستخدم مكتبة خفيفة تمنحه سجلات ملونة ومنسقة بشكل احترافي.
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
Light-Weight Logger خيار جيد إذا كنت تبحث عن مكتبة تسجيل خفيفة وسهلة التخصيص لمشروعك الصغير. جربها في بيئة تطويرية، وساهم في تحسينها إذا أعجبتك. تذكر أن تشارك تجربتك مع المجتمع العربي.
حتى يبقى المرجع صالحاً مع الوقت
FAQ
استمر في القراءة