DEENESPTFRRUARHIKOZHNL

struct ara::log::Format

[SWS_LOG_00207] Upstream: RS_LT_00046

struct Format final {...};

A type holding a formatting hint. The interpretation of precision depends on fmt: For integral types (i.e. Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), precision is interpreted as the minimum number of digits to output, similar to e.g. std::printf("%.7d"). For the floating-point specifiers Fmt::kDecFloat, Fmt::kEngFloat and Fmt::kHexFloat, precision denotes the exact number of digits to be shown after the decimal point; for Fmt::kAutoFloat, precision denotes the number of significant digits to be shown according to the rules of the std::printf "%g" specifier. If fmt is Fmt::kDefault, the precision field is ignored, and an implementation-defined formatting is applied. For integral types, if precision is 0, it is interpreted the same as if it was 1. For convenience, there are helper functions to create specific instances of this struct. The helper functions should be used instead of creating instances manually.

Header-Datei#include "ara/log/logger.h"
Forwarding-Header#include "ara/log/log_fwd.h"
Scopenamespace ara::log

User GuideKI-GENERIERT

Dient als Formatierungshinweis zur Steuerung von Darstellungsformat und Genauigkeit bei der Ausgabe von Log-Werten.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ae5714d3cea4 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Formatierungshinweis zur Steuerung von Darstellungsformat und Genauigkeit bei der Ausgabe von Log-Werten.

Die Struktur ara::log::Format dient als Formatierungshinweis im Logging-System und bündelt den Formatspezifizierer fmt ([SWS_LOG_00225]) mit der Genauigkeitsangabe precision ([SWS_LOG_00226]). Instanzen sollten bevorzugt über bereitgestellte Hilfsfunktionen erzeugt werden, wobei die Auswertung von precision je nach Formattyp zwischen Mindeststellenanzahl bei Ganzzahlen und Nachkommastellen bei Gleitkommazahlen unterscheidet. Bei ganzzahligen Typen wird eine Genauigkeit von null wie eins behandelt, während das Feld unter Fmt::kDefault vollständig ignoriert wird.

Kontext

Die Datenstruktur ara::log::Format dient im Logging-Framework der AUTOSAR Adaptive Platform als Formatierungshinweis zur Ausgabe formatierter Werte. Sie bündelt hierzu zwei zentrale Eigenschaften: die Formatangabe fmt vom Aufzählungstyp Fmt ([SWS_LOG_00225]) sowie die zugehörige Genauigkeit precision als std::uint16_t ([SWS_LOG_00226]). Interaktionspartner sind die Ausgabekomponenten und Formatierungsströme des Logging-Moduls sowie die Anwendungslogik, die Log-Meldungen mit formatierter Textausgabe erzeugt. Interpretation: Die in der Spezifikation erwähnten Hilfsfunktionen zur Instanziierung dürften direkt im Modul ara::log angesiedelt sein, um standardisierte Formatierungen bereitzustellen. Frage Q-1c465e69c99359fa (offen)

Lebenszyklus

Als finale Datenstruktur (struct Format final) besitzt ara::log::Format keinen internen Zustandsautomaten und keine komplexen Phasenübergänge. Obwohl die Attribute als öffentliche Variablen deklariert sind ([SWS_LOG_00225], [SWS_LOG_00226]), fordert die Spezifikation ausdrücklich, Instanzen nicht manuell anzulegen, sondern stattdessen die bereitgestellten Hilfsfunktionen zu verwenden. Exemplare sind typischerweise kurzlebige Wertobjekte, die per Kopie oder Referenz an Log-Streams übergeben werden. Interpretation: Da die Struktur keine interne Synchronisation aufweist, dürften Kopien und gleichzeitige Lesezugriffe über Thread-Grenzen hinweg threadsicher sein, während veränderliche Zugriffe extern synchronisiert werden müssen. Frage Q-bd0f1147e9472c19 (offen)

Nutzungspfad

Die typische Verwendung umfasst die Festlegung des Formatspezifizierers fmt ([SWS_LOG_00225]) und die Angabe der gewünschten Genauigkeit precision ([SWS_LOG_00226]). Die Auswertung von precision richtet sich nach dem gewählten Typ in fmt:

  • Ganzzahlige Typen: Für Fmt::kDec, Fmt::kOct, Fmt::kHex und Fmt::kBin bezeichnet precision die Mindestanzahl an auszugebenden Ziffern, analog zur Formatierung über std::printf("%.7d").
  • Gleitkommatypen mit Festkomma- und Exponentialdarstellung: Bei Fmt::kDecFloat, Fmt::kEngFloat und Fmt::kHexFloat legt precision die exakte Anzahl der Nachkommastellen fest.
  • Automatische Gleitkommadarstellung: Unter Fmt::kAutoFloat definiert precision die Anzahl der signifikanten Stellen nach den Regeln des Formatspezifizierers %g in std::printf.
  • Standardformatierung: Wenn fmt den Wert Fmt::kDefault führt, wird die Angabe in precision ignoriert und eine implementierungsabhängige Formatierung angewandt.
FormatAuswertung start Format-Auswertung check_fmt Welcher Typ in fmt? start->check_fmt integral precision == 0? check_fmt->integral kDec, kOct, kHex, kBin float_fixed Exakte Nachkommastellen = precision check_fmt->float_fixed kDecFloat, kEngFloat, kHexFloat float_auto Signifikante Stellen = precision (analog %g) check_fmt->float_auto kAutoFloat default_fmt precision ignoriert (Standardformatierung) check_fmt->default_fmt kDefault integral_min Minimale Stellenanzahl = precision integral->integral_min nein integral_one Minimale Stellenanzahl = 1 integral->integral_one ja end Formatierung angewendet integral_min->end integral_one->end float_fixed->end float_auto->end default_fmt->end

Aktivitätsdiagramm: Verzweigungslogik zur Auswertung von precision abhängig von fmt. Quellen: [SWS_LOG_00225], [SWS_LOG_00226]

Fehlerszenarien

Die Struktur definiert keine Fehlercodes oder Ausnahmen; Grenzfälle werden stattdessen fehlertolerant und deterministisch behandelt. Bei ganzzahligen Formatbezeichnern (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin) wird ein Wert von precision = 0 ([SWS_LOG_00226]) semantisch identisch zu einem Wert von 1 ausgewertet, um Leerausgaben zu verhindern. Wird fmt auf Fmt::kDefault ([SWS_LOG_00225]) gesetzt, führt ein gesetzter Wert in precision nicht zu einem Fehlerzustand, sondern wird stillschweigend verworfen.

Dieser Leitfaden basiert auf den Vorgaben der Spezifikation für das Logging-Modul der AUTOSAR Adaptive Platform R25-11.

UML-Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__log__Format351 «struct» Format + fmt + precision

Konstanten

fmt variable

the format specifier

Fmt fmt;
precision variable

the precision to use

std::uint16_t precision;

Dokumentation der Konstanten / Variablen

variable fmt [SWS_LOG_00225] Upstream: RS_LT_00046

Fmt fmt;

the format specifier

Header-Datei#include "ara/log/logger.h"
Scopestruct ara::log::Format
Symbolfmt
TypFmt

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_LOG_00225
Status
valid/auto-approved
Version
AUTOSAR/AP/record/SWS_LOG_00225@rel:R25-11#637a0dc2
Content hash
637a0dc2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_LogAndTrace.pdf#nameddest=SWS_LOG_00225
Status: valid/auto-approved Version: rel:R25-11#04613a79 Versionshistorie & Revisions (2 transitions, 6 revision)
Current State
valid/auto-approved
Reason
unchanged
Campaign
2026-08-sws-log-pilot-after-tool-improvement
Active Version
AUTOSAR/AP/record/SWS_LOG_00225@rel:R25-11#04613a79
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#637a0dc22026-09-30
  • R21-11rel:R21-11#b0525fe12026-10-14
  • R22-11rel:R22-11#81b856192026-10-14
  • R23-11rel:R23-11#04613a792026-10-14
  • R24-11rel:R24-11#04613a792026-10-14
  • R25-11rel:R25-11#04613a792026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-10toolvalid/unversioned → invalid/obsoletespec update after tool improvement2026-08-sws-log-pilot-after-tool-improvement
2026-08-10toolinvalid/obsolete → valid/auto-approvedunchanged2026-08-sws-log-pilot-after-tool-improvement

variable precision [SWS_LOG_00226] Upstream: RS_LT_00046

std::uint16_t precision;

the precision to use

Header-Datei#include "ara/log/logger.h"
Scopestruct ara::log::Format
Symbolprecision
Typstd::uint16_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_LOG_00226
Status
valid/auto-approved
Version
AUTOSAR/AP/record/SWS_LOG_00226@rel:R25-11#ee318034
Content hash
ee318034
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_LogAndTrace.pdf#nameddest=SWS_LOG_00226
Status: valid/auto-approved Version: rel:R25-11#c555de85 Versionshistorie & Revisions (2 transitions, 6 revision)
Current State
valid/auto-approved
Reason
unchanged
Campaign
2026-08-sws-log-pilot-after-tool-improvement
Active Version
AUTOSAR/AP/record/SWS_LOG_00226@rel:R25-11#c555de85
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#ee3180342026-09-30
  • R21-11rel:R21-11#c847203d2026-10-14
  • R22-11rel:R22-11#406eff9e2026-10-14
  • R23-11rel:R23-11#c555de852026-10-14
  • R24-11rel:R24-11#c555de852026-10-14
  • R25-11rel:R25-11#c555de852026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-10toolvalid/unversioned → invalid/obsoletespec update after tool improvement2026-08-sws-log-pilot-after-tool-improvement
2026-08-10toolinvalid/obsolete → valid/auto-approvedunchanged2026-08-sws-log-pilot-after-tool-improvement