DEENESPTFRRUARHIKOZHNL

estrutura 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

Guia do utilizadorGERADO POR IA

Serve como dica de formatação para controlar o formato de representação e a precisão na saída de valores de log.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ae5714d3cea4 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve como dica de formatação para controlar o formato de representação e a precisão na saída de valores de log.

A estrutura ara::log::Format serve como dica de formatação no sistema de logging e agrupa o especificador de formato fmt ([SWS_LOG_00225]) com a especificação de precisão precision ([SWS_LOG_00226]). As instâncias devem preferencialmente ser criadas por meio das funções auxiliares disponibilizadas, sendo que a avaliação de precision distingue, dependendo do tipo de formato, entre o número mínimo de dígitos para números inteiros e casas decimais para números de ponto flutuante. Para tipos inteiros, uma precisão igual a zero é tratada como um, enquanto o campo sob Fmt::kDefault é totalmente ignorado.

Contexto

A estrutura de dados ara::log::Format serve no framework de logging da AUTOSAR Adaptive Platform como dica de formatação para a saída de valores formatados. Para isso, ela agrupa duas propriedades centrais: a especificação de formato fmt do tipo de enumeração Fmt ([SWS_LOG_00225]) bem como a precisão correspondente precision como std::uint16_t ([SWS_LOG_00226]). Os parceiros de interação são os componentes de saída e fluxos de formatação do módulo de logging, além da lógica de aplicação que gera mensagens de log com saída de texto formatada. Interpretação: As funções auxiliares mencionadas na especificação para instanciação devem residir diretamente no módulo ara::log, a fim de fornecer formatações padronizadas. Pergunta Q-1c465e69c99359fa (aberta)

Ciclo de vida

Como estrutura de dados final (struct Format final), ara::log::Format não possui máquina de estados interna nem transições de fase complexas. Embora os atributos estejam declarados como variáveis públicas ([SWS_LOG_00225], [SWS_LOG_00226]), a especificação exige expressamente não criar instâncias manualmente, utilizando, em vez disso, as funções auxiliares disponibilizadas. Os exemplares são tipicamente objetos de valor de vida curta, transmitidos por cópia ou referência a streams de log. Interpretação: Como a estrutura não apresenta sincronização interna, cópias e acessos de leitura concorrentes entre limites de threads devem ser thread-safe, enquanto acessos modificadores precisam ser sincronizados externamente. Pergunta Q-bd0f1147e9472c19 (aberta)

Caminho de utilização

O uso típico abrange a definição do especificador de formato fmt ([SWS_LOG_00225]) e a indicação da precisão desejada precision ([SWS_LOG_00226]). A avaliação de precision orienta-se pelo tipo selecionado em fmt:

  • Tipos inteiros: Para Fmt::kDec, Fmt::kOct, Fmt::kHex e Fmt::kBin, precision designa o número mínimo de dígitos a serem exibidos, de forma análoga à formatação via std::printf("%.7d").
  • Tipos de ponto flutuante com representação em ponto fixo e exponencial: Em Fmt::kDecFloat, Fmt::kEngFloat e Fmt::kHexFloat, precision define o número exato de casas decimais.
  • Representação automática de ponto flutuante: Sob Fmt::kAutoFloat, precision define o número de dígitos significativos de acordo com as regras do especificador de formato %g em std::printf.
  • Formatação padrão: Se fmt contiver o valor Fmt::kDefault, a indicação em precision é ignorada e uma formatação dependente da implementação é aplicada.
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 não integral_one Minimale Stellenanzahl = 1 integral->integral_one sim end Formatierung angewendet integral_min->end integral_one->end float_fixed->end float_auto->end default_fmt->end

Diagrama de atividades: Lógica de ramificação para avaliação de precision em função de fmt. Fontes: [SWS_LOG_00225], [SWS_LOG_00226]

Cenários de erro

A estrutura não define códigos de erro ou exceções; em vez disso, casos limítrofes são tratados de maneira tolerante a falhas e determinística. Em identificadores de formato inteiros (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), um valor de precision = 0 ([SWS_LOG_00226]) é avaliado de forma semanticamente idêntica a um valor de 1, a fim de evitar saídas vazias. Caso fmt seja definido como Fmt::kDefault ([SWS_LOG_00225]), um valor configurado em precision não resulta em um estado de erro, sendo silenciosamente descartado.

Este guia baseia-se nas diretrizes da especificação para o módulo de logging da AUTOSAR Adaptive Platform R25-11.

Diagrama de classes UML

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

G nara__log__Format351 «struct» Format + fmt + precision

Constantes

fmt variável

the format specifier

Fmt fmt;
precision variável

the precision to use

std::uint16_t precision;

Documentação das constantes / variáveis

variável 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#74e6b36a
Content hash
74e6b36a
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

variável 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#cbb68b22
Content hash
cbb68b22
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