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 هي الخيار الوحيد؟ هناك حل أخف وأكثر تخصيصاً ظهر حديثاً على Hacker News.
قبل أن تطبق، اعرف أين تقف بالضبط
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
Light-Weight Logger هي مكتبة تسجيل (logging) مفتوحة المصدر ظهرت مؤخراً على Hacker News، وتتيح لك إنشاء سجلات مخصصة بألوان وتنسيقات احترافية في مشاريع C++ وJava وC#. الفكرة بسيطة: تعرّف تنسيقاً رئيسياً (master format) يحتوي على رموز تمثل العناصر (مثل التاريخ، الوقت، اسم المستوى، الملف، السطر)، ثم تضيف مستويات تسجيل (مثل ERROR، WARNING، INFO) مع ألوان مختلفة. النتيجة: سجلات مقروءة وجميلة بدون تعقيد المكتبات الثقيلة.
في هذا الدليل، ستتعلم خطوة بخطوة كيفية تثبيت المكتبة، تعريف التنسيقات، وإضافة الألوان، مع أمثلة عملية بلغات متعددة. سنغطي أيضاً الأخطاء الشائعة وكيفية حلها، ونقدم قوالب جاهزة للاستخدام.
هي مكتبة تسجيل خفيفة تتيح لك تخصيص تنسيق السجلات بشكل كامل باستخدام رموز بسيطة. تدعم حالياً C++ وJava وC#. الميزة الرئيسية: يمكنك تعريف تنسيق رئيسي (master format) مثل:
master_style = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
ثم إضافة مستويات بألوان:
logger.add_format("ERROR", master_style, Colour::RED);النتيجة: سطر أحمر يبدأ بـ [ERROR] ثم التاريخ والوقت والمنطقة الزمنية، ثم الرسالة، وأخيراً الملف ورقم السطر.
من يحتاجها:
من لا يحتاجها:
ملاحظة: README المشروع غير واضح تماماً، لذا الخطوات التالية تقريبية بناءً على هيكل المستودع. يُنصح بمراجعة الملفات الفعلية بعد الاستنساخ.
git clone https://github.com/PenguineDavid/light-weight-logger.gitcd light-weight-logger/cpp (أو java أو csharp).logger.h و logger.cpp) إلى مشروعك.logger.h في ملفاتك..java إلى مسار الكلاس (classpath)..cs إلى مشروعك.master format هو نص يحتوي على رموز خاصة يتم استبدالها بقيم عند التسجيل. الرموز المدعومة (حسب README):
الألوان المدعومة: RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, GREY, DEFAULT.
#include "logger.h"
int main() {
Logger logger;
std::string master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.add_format("ERROR", master, Colour::RED);
logger.log("ERROR", "فشل الاتصال بقاعدة البيانات");
return 0;
}import logger.*;
public class Main {
public static void main(String[] args) {
Logger logger = new Logger();
String master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.addFormat("WARNING", master, Colour.YELLOW);
logger.log("WARNING", "انتهاء صلاحية الجلسة");
}
}using Logger;
class Program {
static void Main() {
Logger logger = new Logger();
string master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.AddFormat("INFO", master, Colour.GREEN);
logger.Log("INFO", "تم تحميل التطبيق بنجاح");
}
}نعم، إذا كنت تبحث عن حل خفيف وسريع لتسجيل مخصص بألوان، ولا تحتاج ميزات متقدمة مثل التسجيل في ملف. لكنه ليس بديلاً عن log4j أو NLog للمشاريع الكبيرة.
حسب README، لا تدعم حالياً. يمكنك إعادة توجيه مخرجات الطرفية إلى ملف باستخدام >>.
log4j أثقل وأكثر ميزات، بينما هذا المشروع يركز على البساطة والتخصيص البصري.
الترخيص غير محدد في README، لذا يُنصح بالتواصل مع المؤلف.
حالياً الألوان محدودة. يمكنك تعديل المصدر لإضافة ألوان ANSI أخرى.
نعم، بشرط استخدام طرفية تدعم ANSI (مثل Windows Terminal).
تأكد من استيفاء المتطلبات، وراجع هيكل المشروع بعد الاستنساخ.
غير مذكور في README.
Light-Weight Logger مكتبة واعدة لمن يريد تحكم كامل في تنسيق السجلات بألوان. جربها في مشروعك الصغير، وإذا أعجبتك، ساهم في تطويرها على GitHub.
خطوات عملية مرتبة من التشخيص إلى النتيجة
لماذا؟ للحصول على ملفات المصدر
كيف؟ git clone https://github.com/PenguineDavid/light-weight-logger.git
الناتج: مجلد light-weight-logger يحتوي على أكواد C++ وJava وC#
لماذا؟ لتضمين المكتبة في مشروعك
كيف؟ انسخ ملفات logger.h وlogger.cpp (C++) أو .java (Java) أو .cs (C#) إلى مسار مشروعك، وأضفها إلى مسار التضمين.
الناتج: المشروع قادر على استخدام دوال المكتبة
لماذا؟ لتحديد تنسيق السجلات
كيف؟ أنشئ نصاً يحتوي على رموز مثل %C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)
الناتج: تنسيق رئيسي جاهز للاستخدام
لماذا؟ لتخصيص لون كل مستوى
كيف؟ استخدم add_format("ERROR", master, Colour::RED) في C++، أو addFormat("WARNING", master, Colour.YELLOW) في Java، أو AddFormat("INFO", master, Colour.GREEN) في C#
الناتج: مستوى تسجيل بلون محدد
لماذا؟ لإخراج السجل
كيف؟ استخدم logger.log("ERROR", "فشل الاتصال")
الناتج: سطر ملون يظهر في الطرفية
حوّل القراءة إلى تنفيذ سريع
#include "logger.h"
int main() {
Logger logger;
std::string master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.add_format("ERROR", master, Colour::RED);
logger.log("ERROR", "فشل الاتصال بقاعدة البيانات");
return 0;
}import logger.*;
public class Main {
public static void main(String[] args) {
Logger logger = new Logger();
String master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.addFormat("WARNING", master, Colour.YELLOW);
logger.log("WARNING", "انتهاء صلاحية الجلسة");
}
}using Logger;
class Program {
static void Main() {
Logger logger = new Logger();
string master = "%C[%N]%c%S%G[%D %T %Z]%c %M %G(%F:%t:%L)";
logger.AddFormat("INFO", master, Colour.GREEN);
logger.Log("INFO", "تم تحميل التطبيق بنجاح");
}
}اعرف أين يتعثر الناس وكيف تتجنب ذلك
ماذا تفعل حسب حالتك؟
إذا: إذا كنت تحتاج تسجيلاً في ملفات
إذن: استخدم spdlog (C++) أو NLog (C#) أو log4j (Java)
إذا: إذا كنت تحتاج ميزات متقدمة (غير متزامن، ضغط)
إذن: استخدم مكتبة أثقل مثل log4j أو NLog
إذا: إذا كنت تستخدم لغة أخرى غير C++/Java/C#
إذن: ابحث عن بدائل مثل Python logging أو Winston (Node.js)
إذا: إذا كنت تريد حلاً خفيفاً وسريعاً بألوان
إذن: استخدم Light-Weight Logger
جدول صغير يمنع التسويف
نقاط مختصرة ترجع لها لاحقاً
1. المكتبة مفتوحة المصدر على GitHub
2. تدعم C++ وJava وC# فقط
3. لا تدعم التسجيل في ملفات
4. تستخدم رموزاً خاصة في master format
5. الألوان محدودة بـ 8 ألوان أساسية
6. تحتاج طرفية تدعم ANSI
7. مناسبة للمشاريع الصغيرة والمتوسطة
8. الترخيص غير محدد في README
إجابات مباشرة على ما يبحث عنه الزائر
تعريفات مختصرة تمنع الالتباس
نص يحتوي على رموز تحدد تنسيق السجل، مثل %N لاسم المستوى و%D للتاريخ.
أكواد لونية تستخدم في الطرفيات لتلوين النص.
مستوى التسجيل مثل ERROR أو WARNING أو INFO.
استخدمها كمسارات متابعة داخل نفس الموضوع
تحول القارئ: من مطور يستخدم مكتبات تسجيل ثقيلة ومعقدة إلى مطور قادر على إنشاء نظام تسجيل مخصص خفيف بألوان.
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
Light-Weight Logger ليس بديلاً كاملاً عن المكتبات الكبيرة، لكنه خيار ممتاز للمشاريع الصغيرة والمتوسطة التي تريد تسجيلاً مخصصاً بألوان دون تعقيد. جربه، وإذا أعجبك، ساهم في تطويره على GitHub.
حتى يبقى المرجع صالحاً مع الوقت
FAQ
استمر في القراءة