منصوبے کے بارے میں

spdlog ایک اعلیٰ کارکردگی والی C++ لاگنگ لائبریری ہے جو رفتار، لچک اور استعمال میں آسانی کے لیے ڈیزائن کی گئی ہے۔ اسے ہیڈر-صرف لائبریری کے طور پر استعمال کیا جا سکتا ہے یا تیز تر تعمیر کے اوقات کے لیے کمپائل کیا جا سکتا ہے، جس کے لیے صرف C++11 کمپائلر کی ضرورت ہوتی ہے۔ یہ لائبریری fmt فارمیٹنگ لائبریری پر مبنی ہے، جو پوزیشنی دلائل، پیڈنگ، الائنمنٹ اور حسب ضرورت ٹائپ فارمیٹرز کے لیے معاونت کے ساتھ بھرپور آؤٹ پٹ فارمیٹنگ فراہم کرتی ہے۔ کلیدی خصوصیات میں ہم وقت اور غیر متزامن لاگنگ موڈز، ملٹی تھریڈڈ اور سنگل تھریڈڈ لاگرز، اور لاگ اہداف کی ایک وسیع رینج شامل ہے جیسے گردشی لاگ فائلیں، روزانہ لاگ فائلیں، رنگ سپورٹ کے ساتھ کنسول آؤٹ پٹ، سسلاگ، ونڈوز ایونٹ لاگ، ونڈوز ڈیبگر آؤٹ پٹ، اور Qt ویجٹس۔ اضافی اہداف تک لائبریری کو بڑھانے کے لیے حسب ضرورت سنک لاگو کیے جا سکتے ہیں۔ لاگ کی سطحوں کو رن ٹائم یا کمپائل ٹائم پر فلٹر کیا جا سکتا ہے، اور سطحیں ماحولیاتی متغیرات یا کمانڈ لائن دلائل سے لوڈ کی جا سکتی ہیں۔ لائبریری بیک ٹریس فعالیت کو سپورٹ کرتی ہے، جہاں ڈیبگ پیغامات رنگ بفر میں محفوظ ہوتے ہیں اور ضرورت پڑنے پر ڈمپ کیے جا سکتے ہیں—یہ غلطی ہونے پر حالیہ ڈیبگ آؤٹ پٹ دکھانے کے لیے مفید ہے۔ اضافی افادیت میں رجسٹرڈ لاگرز کی متواتر فلشنگ، وقت کی پیمائش کے لیے اسٹاپ واچ سپورٹ، ہیکساڈیسیمل فارمیٹ میں بائنری ڈیٹا لاگنگ، تھریڈ-لوکل کلید-قدر جوڑوں کے لیے میپڈ تشخیصی سیاق و سباق (MDC)، اور لاگ واقعات کے لیے صارف کی وضاحت کردہ کال بیکس شامل ہیں۔ حسب ضرورت غلطی ہینڈلرز اور فائل کھولنے/بند کرنے کے واقعہ ہینڈلرز لاگنگ رویے پر مزید کنٹرول فراہم کرتے ہیں۔ spdlog کراس-پلیٹ فارم ہے، جو Linux، FreeBSD، OpenBSD، Solaris، AIX، Windows (MSVC 2013+، Cygwin)، macOS (Clang 3.5+) اور Android کو سپورٹ کرتا ہے۔ یہ متعدد پیکیج مینیجرز کے ذریعے دستیاب ہے جن میں apt، Homebrew، MacPorts، FreeBSD pkg، dnf، emerge، pacman، zypper، vcpkg، conan، conda اور build2 شامل ہیں۔ Ubuntu 64-bit پر Intel i7-4770 CPU کے ساتھ بینچ مارکس بنیادی لاگنگ کے لیے تقریباً 5.7 ملین پیغامات فی سیکنڈ کی ہم وقت سنگل تھریڈ تھرو پٹ دکھاتے ہیں، جبکہ غیر متزامن موڈ 10-تھریڈ مسابقت اور اوور رن پالیسی کے تحت 2.6 ملین پیغامات فی سیکنڈ تک حاصل کرتا ہے۔ دستاویزات پروجیکٹ ویکی میں دستیاب ہیں۔