DEENESPTFRRUARHIKOZHNL

structure 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert d'indication de formatage pour contrôler le format d'affichage et la précision lors de l'émission de valeurs de log.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ae5714d3cea4 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert d'indication de formatage pour contrôler le format d'affichage et la précision lors de l'émission de valeurs de log.

La structure ara::log::Format sert d'indication de formatage dans le système de journalisation et regroupe le spécificateur de format fmt ([SWS_LOG_00225]) avec l'indication de précision precision ([SWS_LOG_00226]). Les instances doivent de préférence être créées via les fonctions utilitaires fournies, l'évaluation de precision distinguant, selon le type de format, entre le nombre minimal de chiffres pour les entiers et le nombre de décimales pour les nombres à virgule flottante. Pour les types entiers, une précision de zéro est traitée comme un, tandis que le champ sous Fmt::kDefault est entièrement ignoré.

Contexte

La structure de données ara::log::Format sert d'indication de formatage dans le framework de journalisation de l'AUTOSAR Adaptive Platform pour la sortie de valeurs formatées. Elle regroupe à cet effet deux propriétés centrales : l'indication de format fmt de type énuméré Fmt ([SWS_LOG_00225]) ainsi que la précision associée precision en tant que std::uint16_t ([SWS_LOG_00226]). Les partenaires d'interaction sont les composants de sortie et les flux de formatage du module de journalisation, ainsi que la logique applicative qui génère des messages de log avec une sortie de texte formatée. Interprétation : les fonctions utilitaires d'instanciation mentionnées dans la spécification devraient se situer directement dans le module ara::log afin de fournir des formatages standardisés. Question Q-1c465e69c99359fa (ouverte)

Cycle de vie

En tant que structure de données finale (struct Format final), ara::log::Format ne possède pas d'automate à états interne ni de transitions de phase complexes. Bien que les attributs soient déclarés comme variables publiques ([SWS_LOG_00225], [SWS_LOG_00226]), la spécification exige expressément de ne pas créer les instances manuellement, mais d'utiliser à la place les fonctions utilitaires fournies. Les exemplaires sont typiquement des objets-valeurs à courte durée de vie, passés par copie ou par référence aux flux de log. Interprétation : la structure ne présentant aucune synchronisation interne, les copies et les accès simultanés en lecture à travers les frontières de threads devraient être sûrs pour les threads, tandis que les accès modificateurs doivent être synchronisés de manière externe. Question Q-bd0f1147e9472c19 (ouverte)

Parcours d'utilisation

L'utilisation typique comprend la définition du spécificateur de format fmt ([SWS_LOG_00225]) et l'indication de la précision souhaitée precision ([SWS_LOG_00226]). L'évaluation de precision dépend du type sélectionné dans fmt :

  • Types entiers : pour Fmt::kDec, Fmt::kOct, Fmt::kHex et Fmt::kBin, precision désigne le nombre minimal de chiffres à afficher, de manière analogue au formatage via std::printf("%.7d").
  • Types à virgule flottante avec représentation à virgule fixe et exponentielle : pour Fmt::kDecFloat, Fmt::kEngFloat et Fmt::kHexFloat, precision définit le nombre exact de décimales.
  • Représentation automatique à virgule flottante : sous Fmt::kAutoFloat, precision définit le nombre de chiffres significatifs selon les règles du spécificateur de format %g dans std::printf.
  • Formatage par défaut : lorsque fmt porte la valeur Fmt::kDefault, l'indication figurant dans precision est ignorée et un formatage dépendant de l'implémentation est appliqué.
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 Non integral_one Minimale Stellenanzahl = 1 integral->integral_one Oui end Formatierung angewendet integral_min->end integral_one->end float_fixed->end float_auto->end default_fmt->end

Diagramme d'activité : logique de branchement pour l'évaluation de precision en fonction de fmt. Sources : [SWS_LOG_00225], [SWS_LOG_00226]

Scénarios d'erreur

La structure ne définit aucun code d'erreur ni aucune exception ; les cas limites sont au contraire traités de manière tolérante aux pannes et déterministe. Pour les identificateurs de format entiers (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), une valeur de precision = 0 ([SWS_LOG_00226]) est évaluée de façon sémantiquement identique à une valeur de 1 afin d'empêcher les sorties vides. Si fmt est défini sur Fmt::kDefault ([SWS_LOG_00225]), une valeur définie dans precision ne conduit pas à un état d'erreur, mais est rejetée silencieusement.

Ce guide se base sur les exigences de la spécification pour le module de journalisation de l'AUTOSAR Adaptive Platform R25-11.

Diagramme de classes UML

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

G nara__log__Format351 «struct» Format + fmt + precision

Constantes

fmt variable

the format specifier

Fmt fmt;
precision variable

the precision to use

std::uint16_t precision;

Documentation des constantes / variables

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