DEENESPTFRRUARHIKOZHNL

وحدة ara::log — Log and Trace

Spezifikation: AUTOSAR_AP_SWS_LogAndTrace.pdf (R25-11) · 75 API-Records

دليل الوحدةمولَّد بالذكاء الاصطناعي

يتيح للتطبيقات التكيفية وخدمات المنصة إجراء التسجيل وتتبع التنفيذ عالي الأداء وآمن الأنواع.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 7b52e43f3040 المصدر أسئلة مفتوحة (2)
المرساة السببية: R25-11 صالح اعتبارًا من R25-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يتيح للتطبيقات التكيفية وخدمات المنصة إجراء التسجيل وتتبع التنفيذ عالي الأداء وآمن الأنواع.

توفر المجموعة الوظيفية Log and Trace البنية التحتية المركزية للتسجيل وتتبع التنفيذ على AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace ص. 13. وتنشئ التطبيقات وعفاريت المنصة (Platform Daemons) رسائل السجل بمرونة عبر تدفقات بيانات آمنة الأنواع أو عبر استدعاءات دوال منمذجة عالية الكفاءة مع أدنى حد من التحميل الإضافي للفحص [SWS_LOG_00204]. تتم تصفية الرسائل عبر مستويات تفصيل قابلة للتهيئة لكل سياق، بينما يتم التوجيه إلى واجهة DLT الخلفية، أو أدوات ARTI، أو وحدة التحكم المحلية [SWS_LOG_00021].

تمثل المجموعة الوظيفية Log and Trace (ara::log) البنية التحتية الأساسية العامة للتسجيل المنظم ومخرجات التشخيص وتتبع التنفيذ القريب من العتاد في AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace ص. 13. يمثل كل مثيل لـ Logger سياقًا خاصًا به داخل عملية ما، ويسجل نفسه تلقائيًا عند إنشائه في الواجهة الخلفية المركزية للتسجيل EXP SWArchitecture ص. 57. وإلى جانب التطبيقات، تدمج خدمات المنصة الأساسية مثل Execution Management وPlatform Health Management وPersistency واجهة Logger بشكل إلزامي لتوثيق التشغيل AUTOSAR AP EXP SWArchitecture ص. 58.

architektur_einbettung cluster_consumers المستهلكون (التطبيقات ومجموعات المنصة) cluster_ara_log Functional Cluster Log and Trace (ara::log) cluster_backends مصارف الإخراج والتشخيص app Adaptive Application logger Logger app->logger CreateLogger / Log* em Execution Management em->logger Logger-API phm Platform Health Management phm->logger Logger-API pers Persistency pers->logger Logger-API tsync Time Synchronization tsync->logger Logger-API ucm Update & Configuration Management ucm->logger Logger-API logstream LogStream logger->logstream Fluent Builder backend_adapter Logging-Backend / DLT-Engine logger->backend_adapter Log(MsgId) / Flush() logstream->backend_adapter ~LogStream() / Flush() console Konsole (Default-Fallback) backend_adapter->console Fallback dlt_sink DLT Log Sink (Ethernet) backend_adapter->dlt_sink DltLogSink arti ARTI / Trace-Werkzeuge backend_adapter->arti TraceArti

مخطط سياق: تضمين المجموعة Log and Trace كبنية تحتية مركزية للتسجيل والتتبع للتطبيقات التكيفية والمجموعات الوظيفية للمنصة. المصادر: AUTOSAR AP SWS LogAndTrace ص. 13، AUTOSAR AP EXP SWArchitecture ص. 58، SWS LogAndTrace ص. 21، AUTOSAR AP SWS OperatingSystemInterface ص. 21

تميز الوحدة بين شكلين أساسيين من أشكال التفاعل:

  • التسجيل غير المنمذج: ينشئ نمط المنشئ الانسيابي (Fluent Builder Pattern) عبر دوال مرتبطة بدرجة الخطورة (مثل LogInfo() أو LogError()) كائن LogStream مؤقتًا، يربط الأنواع القياسية وسلاسل الأحرف ورموز الأخطاء ومعدلات التنسيق بشكل آمن الأنواع، وينقل المخزن المؤقت في أقصى تقدير في المدمر أو عبر Flush() [SWS_LOG_00067]، [SWS_LOG_00039]، [SWS_LOG_00262].
  • التسجيل المنمذج: عبر واجهة الاستدعاء المفرد Logger::Log(id, args...)، يتم إرسال الرسائل المصرح عنها مسبقًا في البيان (Manifest)، مما يتيح تصفية عالية الكفاءة دون إنشاء مثيلات للكائنات عندما تكون عتبة الحد غير نشطة [SWS_LOG_00204]، PlatformDesign ص. 74.

سير تسجيل الدفق غير المنمذجالتطبيقLoggerLogStreamLogging-BackendLogInfo()Erzeuge LogStreamLogStream (RVO)operator<<("Statuswert")ملء المخزن المؤقتoperator<<(42)ملء المخزن المؤقتaltExpliziter Flush vor Scope-EndeFlush()إرسال محتوى المخزن المؤقتNeuen Strom initiierenمغادرة نطاق الصلاحية~LogStream()إرسال محتوى المخزن المؤقت

مخطط تسلسلي: مسار التسجيل المتدفق غير المنمذج عبر LogStream حتى نقل المخزن المؤقت إلى الواجهة الخلفية للتسجيل. المصادر: [SWS_LOG_00067]، [SWS_LOG_00040]، [SWS_LOG_00039]، [SWS_LOG_00262]، PlatformDesign ص. 74

لتجنب وقت المعالجة غير الضروري، يمكن التحقق من مستوى الرسائل النشط مسبقًا بواسطة IsEnabled(logLevel) أو ضبطه في وقت التشغيل عبر SetThreshold(threshold) [SWS_LOG_00070]، [SWS_LOG_00255]. بالإضافة إلى إعادة التوجيه إلى قنوات DLT عبر Ethernet أو إلى أدوات ARTI، تعمل وحدة التحكم كآلية أمان عند الفشل في حال غياب تكوين النموذج [SWS_LOG_00021]، بينما يمكن مراقبة حالة اتصال التشخيص الخارجي بشكل غير متزامن عبر RegisterConnectionStateHandler [SWS_LOG_00098]، [SWS_LOG_00205].

بنية النظام والدور الوظيفي لـ Log and Trace

تشكل الكتلة الوظيفية Log and Trace (ara::log) النظام الفرعي المركزي الشامل للجمع المعياري لرسائل التشخيص والتتبع والبروتوكول وتوجيهها وتصفيتها على AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace ص. 13. توفر واجهة برمجة التطبيقات Logger واجهة C++ الموحدة للمنصة (API)، والتي تُستهلك كبنية تحتية أساسية سواء من خلال العمليات الخاصة بالتطبيق (Adaptive Applications) أو من خلال كتل المنصة الوظيفية الأساسية AUTOSAR AP EXP SWArchitecture ص. 58. وتشمل هذه العمليات الخلفية للنظام (System-Daemons) المستهلكة، من بين أمور أخرى، Execution Management لتوثيق دورة حياة العمليات AUTOSAR AP EXP SWArchitecture ص. 50، وPlatform Health Management لمراقبة الحالة AUTOSAR AP SWS PlatformHealthManagement ص. 16، وTime Synchronization للمراجع الزمنية عالية الدقة AUTOSAR AP SWS TimeSynchronization ص. 17، بالإضافة إلى Update and Configuration Management أثناء تحديثات البرمجيات AUTOSAR AP EXP SWArchitecture ص. 141.

من الناحية المعمارية، يغلف كل مثيل مسجل سياقًا فريدًا (Context ID) داخل نطاق تطبيق أو عملية، حيث يسجل هذا السياق نفسه تلقائيًا في الواجهة الخلفية للتسجيل عند الإنشاء ويُلغى تسجيله تلقائيًا عند إيقاف تشغيل التطبيق EXP SWArchitecture ص. 57. تعيد الواجهة الخلفية للتسجيل توجيه الرسائل المنسقة إلى قنوات الإخراج المخططة (مثل مصارف بروتوكول DLT عبر Ethernet وفقًا لبيان الآلة) أو إلى مخازن مؤقتة محلية، مع الرجوع افتراضيًا إلى وحدة تحكم نظام التشغيل في حالة عدم وجود نموذج نشر [SWS_LOG_00021]، SWS LogAndTrace ص. 21. علاوة على ذلك، تسمح بنية مهايئ مفككة لنظام التشغيل (POSIX/OS) بتوفير مقاييس النواة والجدولة الداخلية عبر AUTOSAR Run-Time Interface (ARTI) بالتزامن مع رسائل ara::log AUTOSAR AP SWS OperatingSystemInterface ص. 21.

architektur_einbettung cluster_consumers المستهلكون (التطبيقات ومجموعات المنصة) cluster_ara_log Functional Cluster Log and Trace (ara::log) cluster_backends مصارف الإخراج والتشخيص app Adaptive Application logger Logger app->logger CreateLogger / Log* em Execution Management em->logger Logger-API phm Platform Health Management phm->logger Logger-API pers Persistency pers->logger Logger-API tsync Time Synchronization tsync->logger Logger-API ucm Update & Configuration Management ucm->logger Logger-API logstream LogStream logger->logstream Fluent Builder backend_adapter Logging-Backend / DLT-Engine logger->backend_adapter Log(MsgId) / Flush() logstream->backend_adapter ~LogStream() / Flush() console Konsole (Default-Fallback) backend_adapter->console Fallback dlt_sink DLT Log Sink (Ethernet) backend_adapter->dlt_sink DltLogSink arti ARTI / Trace-Werkzeuge backend_adapter->arti TraceArti

مخطط سياق: تضمين المجموعة Log and Trace كبنية تحتية مركزية للتسجيل والتتبع للتطبيقات التكيفية والمجموعات الوظيفية للمنصة. المصادر: AUTOSAR AP SWS LogAndTrace ص. 13، AUTOSAR AP EXP SWArchitecture ص. 58، SWS LogAndTrace ص. 21، AUTOSAR AP SWS OperatingSystemInterface ص. 21

إنشاء المثيلات، وإدارة السياق، والتحكم في عتبة الحد

يتم توفير سياق المسجل عبر دوال المصنع ara::log::CreateLogger، نظرًا لأن المنشئ الافتراضي للفئة Logger محذوف [SWS_LOG_00259]. يمكن للتطبيقات إنشاء مثيل للمسجل إما برمجيًا بتحديد معرّف السياق (ctxId)، ووصف (ctxDescription)، واختياريًا مستوى تسجيل قياسي [SWS_LOG_00021]، [SWS_LOG_00263]، أو اشتقاقه بناءً على المثيل عبر عنصر نموذج بواسطة ara::core::InstanceSpecifier [SWS_LOG_00256]. ويتولى مدمر Logger معالجة إلغاء التسجيل بطريقة آمنة لسلاسل الرسائل (Thread-safe) [SWS_LOG_00260].

يتم تمثيل دقة الرسائل وأولويتها هرميًا بواسطة التعداد LogLevel: kFatal (خطأ نظام غير قابل للإصلاح)، kError (خطأ مع ضعف وظيفي)، kWarn (تحذير عند تعرض السلوك المستهدف للخطر)، kInfo (معلومات تشغيل عامة)، kDebug (تشخيص تفصيلي)، وkVerbose (تتبع تفصيلي للتنفيذ) [SWS_LOG_00018]، ManifestSpecification ص. 416. ولتحسين وقت التشغيل، يمكن تجنب الإعدادات كثيفة الحوسبة لبيانات التسجيل من خلال التحقق مسبقًا عبر الاستعلام IsEnabled(logLevel) مما إذا كان مستوى التسجيل المعني مفعلًا حاليًا في السياق [SWS_LOG_00070]. ويمكن تعديل عتبة إرسال الرسائل النشطة لمثيل المسجل ديناميكيًا عند الحاجة في وقت التشغيل عبر SetThreshold(threshold) [SWS_LOG_00255].

التسجيل غير المنمذج وتركيب الرسائل القائم على التدفق

بالنسبة للرسائل غير المنمذجة، يوفر ara::log واجهة انسيابية مستندة إلى نمط تصميم المنشئ (Builder) PlatformDesign ص. 74. وتتم نقطة البداية عبر دوال أعضاء خاصة بدرجة الخطورة لمثيل Logger، وتحديدًا LogFatal() وLogError() وLogWarn() وLogInfo() وLogDebug() وLogVerbose()، أو عبر WithLevel(logLevel)، والتي تُرجع كائن LogStream مؤقتًا وخفيف الوزن [SWS_LOG_00064]، [SWS_LOG_00065]، [SWS_LOG_00066]، [SWS_LOG_00067]، [SWS_LOG_00068]، [SWS_LOG_00069]، [SWS_LOG_00131]. بعد ذلك، يتم إلحاق البيانات بالمخزن المؤقت الداخلي للرسائل بشكل متسلسل عبر معامل إدراج التدفق آمن الأنواع (operator<<) [SWS_LOG_00040].

تدعم واجهة التدفق مجموعة واسعة من أنواع C++ وأنواع AUTOSAR الأصلية دون أخطاء تنسيق يدوية:

يمكن التحكم في البيانات الوصفية والتنسيقات بدقة: عبر WithLocation(file, line) يتم تسجيل مصدر التعليمات البرمجية [SWS_LOG_00129]، ويضيف WithTag(tag) كلمات رئيسية وظيفية [SWS_LOG_00132]، ويحدد WithPrivacy(value) مستوى سرية عبر أدنى 8 بتات [SWS_LOG_00258]. ويتم تغليف الوسائط المنسقة بالاسم والوحدة الفيزيائية عبر قالب المساعدة Arg [SWS_LOG_00201]، [SWS_LOG_00203]، مدعومًا بأدوات مساعدة التنسيق Dflt وHex وDec وOct وBin وDecFloat وEngFloat وHexFloat وAutoFloat من التعداد Fmt [SWS_LOG_00206]، [SWS_LOG_00208]، [SWS_LOG_00209]، [SWS_LOG_00211]، [SWS_LOG_00217]، [SWS_LOG_00225]، [SWS_LOG_00226].

فيما يتعلق بدورة الحياة، فإن LogStream كائن للنقل فقط (Move-only): منشئ النسخ وعامل تعيين النسخ محذوفان [SWS_LOG_00174]، [SWS_LOG_00175]، بينما تم الإعلان عن منشئ النقل لدعم تحسين القيمة المعادة (RVO) [SWS_LOG_00176]؛ كما أن عامل تعيين النقل محذوف [SWS_LOG_00177]. يتم إرسال محتوى المخزن المؤقت تلقائيًا عند مغادرة نطاق الصلاحية عبر أداة الإتلاف (Destructor) ~LogStream() إلى إطار عمل التسجيل [SWS_LOG_00262]. وإذا كان سيتم استخدام كائن LogStream داخل نفس نطاق الصلاحية لعدة رسائل متتالية، فيجب تشغيل نقل المخزن المؤقت صراحةً عبر Flush()، مما يؤدي إلى تهيئة تدفق رسائل جديد [SWS_LOG_00039]. التفسير: يُرجح أن تقوم إدارة المخزن المؤقت الداخلية لـ LogStream بعد استدعاء Flush() بتفريغ المخزن المؤقت وإعادة تهيئته لعوامل التدفق اللاحقة في نفس نطاق الصلاحية، دون الحاجة إلى إتلاف هوية الكائن.

سير تسجيل الدفق غير المنمذجالتطبيقLoggerLogStreamLogging-BackendLogInfo()Erzeuge LogStreamLogStream (RVO)operator<<("Statuswert")ملء المخزن المؤقتoperator<<(42)ملء المخزن المؤقتaltExpliziter Flush vor Scope-EndeFlush()إرسال محتوى المخزن المؤقتNeuen Strom initiierenمغادرة نطاق الصلاحية~LogStream()إرسال محتوى المخزن المؤقت

مخطط تسلسلي: مسار التسجيل المتدفق غير المنمذج عبر LogStream حتى نقل المخزن المؤقت إلى الواجهة الخلفية للتسجيل. المصادر: [SWS_LOG_00067]، [SWS_LOG_00040]، [SWS_LOG_00039]، [SWS_LOG_00262]، PlatformDesign ص. 74

التسجيل المنمذج والتفرع إلى تتبع ARTI

على عكس البناء التدريجي للرسائل غير المنمذجة، يحدد ara::log للرسائل المنمذجة في البيان (Manifest) واجهة استدعاء فردي عالية الكفاءة عبر Logger::Log(id, args...) وكذلك Logger::LogWith(attrs, msgId, params...) [SWS_LOG_00204]، [SWS_LOG_00133]. يتم تمرير جميع المعاملات في استدعاء دالة واحد، مما يقلل الحمل الزائد لوقت التشغيل في حالة الرسائل المكبوتة إلى الحد الأدنى: بعد تمرير المعاملات مباشرةً، يتحقق شرط فردي من قيمة العتبة ويعود فورًا إذا لم يتم الوصول إلى مستوى التسجيل الذي جرى تكوينه PlatformDesign ص. 74.

داخل استدعاء Log، يتشعب مسار المعالجة: إلى جانب المسار التقليدي لتسلسل DLT (buildDltMessage()، والتصفية عبر قناع التسجيل والتسليم إلى المصب)، يوجد مسار مخصص للتتبع القريب من الأجهزة عبر واجهة وقت تشغيل AUTOSAR (ARTI) بواسطة TraceArti(msg_id, params...) [SWS_LOG_20000]، AUTOSAR AP SWS LogAndTrace ص. 42. يُفترض أنه يتم حل التمرير إلى TraceArti عبر تخصيصات القوالب الثابتة في وقت الترجمة لضمان الحد الأدنى المطلوب من الحمل الزائد لوقت التشغيل. تقوم واجهة ARTI الخلفية بالتصفية وفقًا لمعاييرها الخاصة استنادًا إلى MsgId وتتجاوز التخزين المؤقت لـ DLT تمامًا، مما يتيح التتبع الحرج للوقت الفعلي دون إزعاج النظام الفرعي العادي للتسجيل AUTOSAR AP SWS LogAndTrace ص. 42.

modelliertes_logging start Logger::Log(msg_id, params) check_threshold Schwellwert erreicht? (msg.level >= threshold) start->check_threshold discard تجاهل / عودة فورية check_threshold->discard Nein check_trace TraceSwitch aktiv? check_threshold->check_trace Ja end_node Ende discard->end_node trace_arti TraceArti(msg_id, params) check_trace->trace_arti Ja build_dlt buildDltMessage() check_trace->build_dlt Nein trace_arti->end_node check_mask فحص التصفية (msg_id & logmask) build_dlt->check_mask send_sink sendDltMessageToSink() check_mask->send_sink Passiert check_mask->end_node Gefiltert send_sink->end_node

مخطط النشاط: تدفق التحكم والتصفية عند إرسال الرسائل المنمذجة بين واجهة DLT الخلفية وتتبع ARTI. المصادر: [SWS_LOG_00204]، [SWS_LOG_20000]، AUTOSAR AP SWS LogAndTrace ص. 42، PlatformDesign ص. 74

مراقبة اتصال العميل وربط التشخيص

لا يوفر Log and Trace قنوات إخراج محلية فحسب، بل يراقب أيضًا حالة عملاء التشخيص الخارجيين (مثل DLT-Viewer عبر Ethernet)، والممثلة بواسطة التعداد ClientState: kUnknown (-1، واجهة DLT الخلفية ليست جاهزة بعد)، kNotConnected (لم يتم اكتشاف عميل بعيد) وkConnected (الاتصال بعميل خارجي نشط) [SWS_LOG_00098]. يتيح ذلك للتطبيقات ربط التتبع المكثف بالوجود الفعلي لأداة تحليل.

لتتبع الحالة بشكل غير متزامن، تسجل التطبيقات دالة استدعاء رجعي (Callback) عبر ara::log::RegisterConnectionStateHandler باستخدام الاسم المستعار للدالة ConnectionStateHandler = std::function<void(ClientState)> [SWS_LOG_00205]، [SWS_LOG_00265]. يدعم إطار عمل التسجيل في هذا السياق تسجيل معالج نشط واحد بالضبط: يؤدي الاستدعاء المتكرر لـ RegisterConnectionStateHandler إلى استبدال الاستدعاء الرجعي المثبت مسبقًا بالكامل [SWS_LOG_00205].

verbindungszustand unknown ClientState::kUnknown (DLT-Backend startet) not_connected ClientState::kNotConnected (Kein Remote-Client) unknown->not_connected Backend initialisiert connected ClientState::kConnected (Remote-Client verbunden) unknown->connected Client sofort erkannt not_connected->connected Client verbindet sich connected->not_connected Client-Verbindung getrennt

مخطط الحالة: انتقالات حالة العميل الخارجي وفقًا لـ ClientState. المصادر: [SWS_LOG_00098]، [SWS_LOG_00205]، [SWS_LOG_00265]

التصرف في حالة الخطأ

تفرض الوحدة السلامة الوظيفية والمتانة بشكل أساسي من خلال عمليات فحص النوع الثابت في وقت الترجمة وضمانات الاستثناء الصارمة:

  • أخطاء وقت الترجمة (ill-formed): يعد استدعاء Logger::Log(id, args...) غير مسموح به (ill-formed) إذا كانت المعاملات الممررة لا تتطابق تمامًا مع توقيع الرسالة المعلن في البيان [SWS_LOG_00204]. وبالمثل، يؤدي استخدام Arg() مع أنواع ليست حسابية ولا بوليانية ولا قابلة للتحويل إلى StringView أو Span<const Byte> إلى إيقاف الترجمة [SWS_LOG_00201]. تفرض الدالة WithPrivacy(value) علاوة على ذلك أن يكون نوع المعامل نوعًا صحيحًا أو تعدادًا [SWS_LOG_00258].
  • محظورات الإنشاء والتعيين: لاستبعاد التكرار غير المقصود للمخزن المؤقت أو تعارضات الموارد، تم حذف منشئ النسخ وعامل تعيين النسخ لـ LogStream صراحةً، بالإضافة إلى عامل تعيين النقل [SWS_LOG_00174]، [SWS_LOG_00175]، [SWS_LOG_00177].
  • تكامل وقت التشغيل عند إنشاء المثيلات: إذا فشل حل ara::core::InstanceSpecifier في نموذج الآلة أو التطبيق عند CreateLogger(is) أو إذا كان لا يشير إلى عنصر نموذج مسموح به، يبلغ النظام عن InstanceSpecifierMappingIntegrityViolation [SWS_LOG_00256].
  • مصاب احتياطية آمنة من الفشل: إذا لم يكن نموذج النشر أو اتصال الشبكة بخدمة DLT متاحًا في وقت التشغيل، ينتقل إطار العمل تلقائيًا إلى وحدة التحكم المحلية كمصب إخراج افتراضي، بحيث لا تضيع معلومات التشخيص بصمت [SWS_LOG_00021]، [SWS_LOG_00263]. عند إخراج core::ErrorCode على وحدة التحكم، يتم العرض عبر اسم النطاق وقيمة الخطأ الرقمية [SWS_LOG_00124].
  • أمان الاستثناءات: تم الإعلان عن جميع عوامل التدفق، واستعلامات العتبة، وأداة الإتلاف ~LogStream() على أنها noexcept، لضمان عدم قيام التسجيل في أي وقت بنشر استثناءات لم تتم معالجتها إلى كتل الدوال المطبقة [SWS_LOG_00040]، [SWS_LOG_00070]، [SWS_LOG_00262]؛ ومع ذلك، لم يتم تحديد أداة الإتلاف ~Logger() شكليًا على أنها noexcept [SWS_LOG_00260].

أدلة تفصيلية إضافية

ترتكز بنية وسلوك الوحدة Log and Trace على المراجع التالية في مواصفات AUTOSAR:

تم إنشاء دليل الوحدات هذا آليًا استنادًا إلى المواصفات المعيارية وأقسام الوثائق المخصصة من AUTOSAR Adaptive R25-11.

function: 65 enumeration: 3 class: 3 variable: 2 type alias: 1 struct: 1

apext::log

TraceArti دالة

Handles a modeled message, specific to the used trace tool. This function is only called internally by the Logger framework when switching between Log and TraceArti. It represents the interface to trace tools. The runtime overhead of this function shall be kept as minimal as possible, e.g. by using specializations based on the MsgId.

template <typename MsgId, typename... Params> void TraceArti (const MsgId &msg_id, const Params &... params) noexcept;

ara::log

Argument فئة

Wrapper type for holding a payload argument with its attributes

Format فئة

A type holding a formatting hint

Logger فئة

Represents a logger context

LogStream فئة

Represents a Log message, allowing stream operators to be used for appending data

الإدخال/الإخراج << 5
LogStream & operator<< (LogStream &out, LogLevel value) noexcept; SWS_LOG_00063
LogStream & operator<< (LogStream &out, const core::ErrorCode &ec) noexcept; SWS_LOG_00124
template <typename Rep, typename Period> LogStream & operator<< (LogStream &out, const std::chrono::duration< Rep, Period > &value) noexcept; SWS_LOG_00125
LogStream & operator<< (LogStream &out, const ara::core::Instance Specifier &value) noexcept; SWS_LOG_00126
LogStream & operator<< (LogStream &out, const void *value) noexcept; SWS_LOG_00127
Arg دالة

Create a wrapper object for the given arguments. Calling this function shall be ill-formed if any of these conditions are met: • T is not an arithmetic type and not "bool" and not convertible to "ara::core::StringView" and not convertible to "ara::core::Span<const ara::core::Byte>" • T is convertible to "ara::core::StringView" or convertible to "ara::core::Span<const ara::core::Byte>" or "bool", and "unit" is not "nullptr"

template <typename T> Argument< T > Arg (T &&arg, const char *name=nullptr, const char *unit=nullptr, Format format=Dflt()) noexcept;
AutoFloat دالة

Create a Format instance with Fmt::kAutoFloat formatting hint and given precision.

constexpr Format AutoFloat (std::uint16_t precision=6) noexcept;
AutoFloatMax دالة

Create a Format instance with Fmt::kAutoFloat formatting hint and a precision that is sufficient for full round-trip safety. .

constexpr Format AutoFloatMax () noexcept;
Bin دالة 2

Create a Format instance with Fmt::kBin formatting hint and default precision. .

التحميلات الزائدة Bin 2
constexpr Format Bin () noexcept; SWS_LOG_00215
constexpr Format Bin (std::uint16_t precision) noexcept; SWS_LOG_00216
CreateLogger دالة 3

Creates a Logger object, holding the context which is registered in the Logging framework. If no model is available the sink shall be the console per default.

التحميلات الزائدة CreateLogger 3
Logger & CreateLogger (ara::core::StringView ctxId, ara::core::String View ctxDescription, LogLevel ctxDefLogLevel) noexcept; SWS_LOG_00021
Logger & CreateLogger (const ara::core::InstanceSpecifier &is) noexcept; SWS_LOG_00256
Logger & CreateLogger (ara::core::StringView ctxId, ara::core::String View ctxDescription) noexcept; SWS_LOG_00263
Dec دالة 2

Create a Format instance with Fmt::kDec formatting hint and default precision. .

التحميلات الزائدة Dec 2
constexpr Format Dec () noexcept; SWS_LOG_00211
constexpr Format Dec (std::uint16_t precision) noexcept; SWS_LOG_00212
DecFloat دالة

Create a Format instance with Fmt::kDecFloat formatting hint and given precision.

constexpr Format DecFloat (std::uint16_t precision=6) noexcept;
DecFloatMax دالة

Create a Format instance with Fmt::kDecFloat formatting hint and a precision that is sufficient for full round-trip safety. .

constexpr Format DecFloatMax () noexcept;
Dflt دالة

Create a Format instance with Fmt::kDefault formatting hint. .

constexpr Format Dflt () noexcept;
EngFloat دالة

Create a Format instance with Fmt::kEngFloat formatting hint and given precision.

constexpr Format EngFloat (std::uint16_t precision=6) noexcept;
EngFloatMax دالة

Create a Format instance with Fmt::kEngFloat formatting hint and a precision that is sufficient for full round-trip safety. .

constexpr Format EngFloatMax () noexcept;
Hex دالة 2

Create a Format instance with Fmt::kHex formatting hint and default precision. .

التحميلات الزائدة Hex 2
constexpr Format Hex () noexcept; SWS_LOG_00209
constexpr Format Hex (std::uint16_t precision) noexcept; SWS_LOG_00210
HexFloat دالة

Create a Format instance with Fmt::kHexFloat formatting hint and given precision.

constexpr Format HexFloat (std::uint16_t precision) noexcept;
HexFloatMax دالة

Create a Format instance with Fmt::kHexFloat formatting hint and a precision that is sufficient for full round-trip safety. .

constexpr Format HexFloatMax () noexcept;
Oct دالة 2

Create a Format instance with Fmt::kOct formatting hint and default precision. .

التحميلات الزائدة Oct 2
constexpr Format Oct () noexcept; SWS_LOG_00213
constexpr Format Oct (std::uint16_t precision) noexcept; SWS_LOG_00214

Register a callback to be invoked whenever the connection state changes. Only a single function can be installed this way; if a callback was already registered before, only the newly registered one is used henceforth.

void RegisterConnectionStateHandler (ConnectionStateHandler callback) noexcept;
ClientState تعداد

Client state representing the connection state of an external client. .

enum class ClientState : std::int8_t {...};
Fmt تعداد

Format specifiers for log message arguments .

enum class Fmt : std::uint16_t {...};
LogLevel تعداد

List of possible severity levels .

enum class LogLevel : std::uint8_t {...};
ConnectionStateHandler اسم نوع بديل

Callback function type to be registered in ara::log::RegisterConnectionStateHandler.

using ConnectionStateHandler = std::function<void(ClientState)>;

نطاقات الأسماء

مخطط الفئات UML للوحدة

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 ara::log nara__log__Argument642 Argument nara__log__Format351 «struct» Format nara__log__Logger529 Logger nara__log__LogStream884 LogStream