DEENESPTFRRUARHIKOZHNL

módulo ara::log — Log and Trace

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

Guía del móduloGENERADO POR IA

Permite a las aplicaciones adaptativas y a los servicios de plataforma un registro y rastreo de alto rendimiento y con seguridad de tipos.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7b52e43f3040 Procedencia Preguntas abiertas (2)
Ancla causal: R25-11 Válido desde R25-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Permite a las aplicaciones adaptativas y a los servicios de plataforma un registro y rastreo de alto rendimiento y con seguridad de tipos.

El cluster funcional Log and Trace proporciona la infraestructura central para el registro y rastreo en la AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace p. 13. Las aplicaciones y los demonios de plataforma generan mensajes de registro de forma flexible mediante flujos de datos con seguridad de tipos o mediante llamadas a funciones modeladas altamente eficientes con una mínima sobrecarga de verificación [SWS_LOG_00204]. El filtrado de mensajes se lleva a cabo mediante niveles de detalle configurables por cada contexto, mientras que el reenvío se efectúa hacia el backend de DLT, herramientas ARTI o la consola local [SWS_LOG_00021].

El cluster funcional Log and Trace (ara::log) constituye la infraestructura básica universal para el registro estructurado, las salidas de diagnóstico y el rastreo cercano al hardware en la AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace p. 13. Cada instancia de Logger representa un contexto propio dentro de un proceso y se registra automáticamente en el backend central de registro en el momento de su creación EXP SWArchitecture p. 57. Además de las aplicaciones, servicios básicos de plataforma como Execution Management, Platform Health Management y Persistency integran obligatoriamente la interfaz Logger para la documentación operativa AUTOSAR AP EXP SWArchitecture p. 58.

architektur_einbettung cluster_consumers Consumidores (aplicaciones y clústeres de la plataforma) cluster_ara_log Functional Cluster Log and Trace (ara::log) cluster_backends Sumideros de salida y de diagnóstico app Adaptive Application logger Registradores 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

Diagrama de contexto: Integración del cluster Log and Trace como infraestructura central de registro y rastreo para aplicaciones adaptativas y clusters funcionales de la plataforma. Fuentes: AUTOSAR AP SWS LogAndTrace p. 13, AUTOSAR AP EXP SWArchitecture p. 58, SWS LogAndTrace p. 21, AUTOSAR AP SWS OperatingSystemInterface p. 21

El módulo distingue entre dos formas de interacción fundamentales:

  • Registro no modelado: un patrón fluent builder genera, mediante métodos vinculados a la severidad (como LogInfo() o LogError()), un objeto temporal LogStream que concatena tipos escalares, cadenas de caracteres, códigos de error y modificadores de formato con seguridad de tipos, transmitiendo el búfer a más tardar en el destructor o a través de Flush() [SWS_LOG_00067], [SWS_LOG_00039], [SWS_LOG_00262].
  • Registro modelado: a través de la interfaz de llamada única Logger::Log(id, args...) se envían mensajes declarados previamente en el manifiesto, lo que permite un filtrado altamente eficiente sin instanciación de objetos cuando el umbral está inactivo [SWS_LOG_00204], PlatformDesign p. 74.

Secuencia del registro de flujo no modeladoAplicaciónRegistradoresLogStreamLogging-BackendLogInfo()Erzeuge LogStreamLogStream (RVO)operator<<("Statuswert")Llenar búferoperator<<(42)Llenar búferaltExpliziter Flush vor Scope-EndeFlush()Transmitir contenido del búferNeuen Strom initiierenSalida del ámbito de validez~LogStream()Transmitir contenido del búfer

Diagrama de secuencia: Flujo del registro no modelado por flujos mediante LogStream hasta la transmisión del búfer al backend de registro. Fuentes: [SWS_LOG_00067], [SWS_LOG_00040], [SWS_LOG_00039], [SWS_LOG_00262], PlatformDesign p. 74

Para evitar tiempo de cómputo innecesario, el nivel de notificación activo se puede verificar previamente mediante IsEnabled(logLevel) o adaptar en tiempo de ejecución a través de SetThreshold(threshold) [SWS_LOG_00070], [SWS_LOG_00255]. Además del reenvío a canales DLT a través de Ethernet o a herramientas ARTI, en caso de faltar una configuración de modelo la consola actúa como mecanismo de respaldo [SWS_LOG_00021], mientras que el estado de conexión de diagnóstico externo puede supervisarse de forma asíncrona mediante RegisterConnectionStateHandler [SWS_LOG_00098], [SWS_LOG_00205].

Arquitectura de sistema y rol funcional de Log and Trace

El cluster funcional Log and Trace (ara::log) forma el subsistema transversal central para la captura, el reenvío y el filtrado estandarizados de mensajes de diagnóstico, rastreo y registro en la AUTOSAR Adaptive Platform AUTOSAR AP SWS LogAndTrace p. 13. La interfaz de programación Logger proporciona la API de C++ uniforme de la plataforma, la cual es consumida como infraestructura base tanto por procesos específicos de la aplicación (Adaptive Applications) como por los clusters funcionales fundamentales de la plataforma AUTOSAR AP EXP SWArchitecture p. 58. Entre estos demonios del sistema consumidores se encuentran, entre otros, Execution Management para la documentación del ciclo de vida de los procesos AUTOSAR AP EXP SWArchitecture p. 50, Platform Health Management para la supervisión de estados AUTOSAR AP SWS PlatformHealthManagement p. 16, Time Synchronization para referencias temporales de alta precisión AUTOSAR AP SWS TimeSynchronization p. 17, así como Update and Configuration Management durante las actualizaciones de software AUTOSAR AP EXP SWArchitecture p. 141.

Desde el punto de vista arquitectónico, cada instancia de logger encapsula un contexto unívoco (Context ID) dentro de un ámbito de aplicación o de proceso; este contexto se registra automáticamente en el backend de registro al crearse y se da de baja automáticamente al cerrarse la aplicación EXP SWArchitecture p. 57. El backend de registro reenvía los mensajes formateados a canales de salida configurados (p. ej., sumideros de protocolo DLT a través de Ethernet según el manifiesto de máquina) o a búferes locales, recurriendo por defecto a la consola del sistema operativo si no existe un modelo de despliegue [SWS_LOG_00021], SWS LogAndTrace p. 21. Además, una arquitectura desacoplada de adaptadores permite al sistema operativo (POSIX/OS) proporcionar métricas internas del kernel y de planificación a través de la AUTOSAR Run-Time Interface (ARTI) sincronizadas con los mensajes de ara::log AUTOSAR AP SWS OperatingSystemInterface p. 21.

architektur_einbettung cluster_consumers Consumidores (aplicaciones y clústeres de la plataforma) cluster_ara_log Functional Cluster Log and Trace (ara::log) cluster_backends Sumideros de salida y de diagnóstico app Adaptive Application logger Registradores 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

Diagrama de contexto: Integración del cluster Log and Trace como infraestructura central de registro y rastreo para aplicaciones adaptativas y clusters funcionales de la plataforma. Fuentes: AUTOSAR AP SWS LogAndTrace p. 13, AUTOSAR AP EXP SWArchitecture p. 58, SWS LogAndTrace p. 21, AUTOSAR AP SWS OperatingSystemInterface p. 21

Instanciación, gestión de contexto y control de umbrales

La provisión de un contexto de logger se realiza a través de las funciones de fábrica ara::log::CreateLogger, ya que el constructor predeterminado de la clase Logger está eliminado [SWS_LOG_00259]. Las aplicaciones pueden instanciar loggers o bien programáticamente indicando un ID de contexto (ctxId), una descripción (ctxDescription) y, opcionalmente, un nivel de registro por defecto [SWS_LOG_00021], [SWS_LOG_00263], o bien derivarlos en función de la instancia a través de un elemento del modelo mediante ara::core::InstanceSpecifier [SWS_LOG_00256]. El destructor de Logger gestiona la baja del registro de forma segura para subprocesos [SWS_LOG_00260].

La granularidad y la prioridad de los mensajes se representan jerárquicamente mediante la enumeración LogLevel: kFatal (error irrecuperable del sistema), kError (error con degradación funcional), kWarn (advertencia ante un comportamiento previsto comprometido), kInfo (información operativa general), kDebug (diagnóstico detallado) y kVerbose (rastreo exhaustivo) [SWS_LOG_00018], ManifestSpecification p. 416. Para optimizar el tiempo de ejecución, se pueden evitar preparaciones de datos de registro computacionalmente intensivas comprobando previamente, a través de la consulta IsEnabled(logLevel), si el nivel de registro en cuestión está actualmente activado en el contexto [SWS_LOG_00070]. El umbral de notificación activo de una instancia de logger se puede adaptar dinámicamente en tiempo de ejecución mediante SetThreshold(threshold) si es necesario [SWS_LOG_00255].

Registro no modelado y composición de mensajes basada en flujos

Para mensajes no modelados, ara::log proporciona una interfaz fluida basada en el patrón de diseño Builder PlatformDesign p. 74. El punto de entrada se efectúa a través de funciones miembro específicas de la severidad de la instancia Logger, a saber LogFatal(), LogError(), LogWarn(), LogInfo(), LogDebug() y LogVerbose(), o a través de WithLevel(logLevel), las cuales devuelven un objeto LogStream temporal y ligero [SWS_LOG_00064], [SWS_LOG_00065], [SWS_LOG_00066], [SWS_LOG_00067], [SWS_LOG_00068], [SWS_LOG_00069], [SWS_LOG_00131]. A continuación, los datos se añaden concatenados al búfer de mensajes interno a través del operador de inserción de flujo con seguridad de tipos (operator<<) [SWS_LOG_00040].

La interfaz de flujo admite una amplia gama de tipos nativos de C++ y de AUTOSAR sin errores manuales de formato:

Los metadatos y los formatos se pueden controlar con precisión: mediante WithLocation(file, line) se captura el origen del código fuente [SWS_LOG_00129], WithTag(tag) añade palabras clave funcionales [SWS_LOG_00132], y WithPrivacy(value) establece un nivel de confidencialidad a través de los 8 bits inferiores [SWS_LOG_00258]. Los argumentos formateados con nombre y unidad física se encapsulan mediante la plantilla auxiliar Arg [SWS_LOG_00201], [SWS_LOG_00203], respaldada por las ayudas de formateo Dflt, Hex, Dec, Oct, Bin, DecFloat, EngFloat, HexFloat y AutoFloat de la enumeración Fmt [SWS_LOG_00206], [SWS_LOG_00208], [SWS_LOG_00209], [SWS_LOG_00211], [SWS_LOG_00217], [SWS_LOG_00225], [SWS_LOG_00226].

En cuanto al ciclo de vida, LogStream es un objeto de solo movimiento (move-only): el constructor de copia y el operador de asignación por copia están eliminados [SWS_LOG_00174], [SWS_LOG_00175], mientras que el constructor de movimiento está declarado para admitir la Return Value Optimization (RVO) [SWS_LOG_00176]; el operador de asignación por movimiento está eliminado [SWS_LOG_00177]. Al salir del ámbito de validez, el contenido del búfer se envía automáticamente al framework de logging mediante el destructor ~LogStream() [SWS_LOG_00262]. Si un objeto LogStream se va a utilizar sucesivamente para varios mensajes dentro del mismo ámbito, la transferencia del búfer debe activarse de forma explícita mediante Flush(), inicializando así un flujo de mensajes nuevo [SWS_LOG_00039]. Interpretación: Es probable que la gestión interna del búfer de LogStream vacíe y reinicialice el búfer para los operadores de streaming posteriores en el mismo ámbito tras llamar a Flush(), sin que sea necesaria la destrucción de la identidad del objeto. Pregunta (abierta)

Secuencia del registro de flujo no modeladoAplicaciónRegistradoresLogStreamLogging-BackendLogInfo()Erzeuge LogStreamLogStream (RVO)operator<<("Statuswert")Llenar búferoperator<<(42)Llenar búferaltExpliziter Flush vor Scope-EndeFlush()Transmitir contenido del búferNeuen Strom initiierenSalida del ámbito de validez~LogStream()Transmitir contenido del búfer

Diagrama de secuencia: Flujo del registro no modelado por flujos mediante LogStream hasta la transmisión del búfer al backend de registro. Fuentes: [SWS_LOG_00067], [SWS_LOG_00040], [SWS_LOG_00039], [SWS_LOG_00262], PlatformDesign p. 74

Registro modelado y bifurcación hacia el rastreo ARTI

A diferencia de la construcción paso a paso de mensajes no modelados, ara::log define para mensajes modelados en el manifiesto una interfaz de llamada única altamente eficiente mediante Logger::Log(id, args...), así como Logger::LogWith(attrs, msgId, params...) [SWS_LOG_00204], [SWS_LOG_00133]. Todos los argumentos se pasan en una única llamada a función, lo que reduce al mínimo la sobrecarga en tiempo de ejecución en caso de mensajes suprimidos: justo después del paso de parámetros, una única condición comprueba el umbral y retorna de inmediato si no se alcanza el nivel de registro configurado PlatformDesign p. 74.

Dentro de la llamada a Log, la ruta de procesamiento se bifurca: además de la ruta clásica de serialización DLT (buildDltMessage(), filtrado mediante máscara de registro y transferencia al sumidero), existe una ruta dedicada para el rastreo cercano al hardware a través de la AUTOSAR Run-Time Interface (ARTI) mediante TraceArti(msg_id, params...) [SWS_LOG_20000], AUTOSAR AP SWS LogAndTrace p. 42. Se asume que el reenvío a TraceArti se resuelve en tiempo de compilación mediante especializaciones de plantilla estáticas para garantizar la mínima sobrecarga de tiempo de ejecución exigida. El backend de ARTI filtra según criterios propios basados en MsgId y elude por completo el almacenamiento en búfer de DLT, lo que permite un rastreo crítico en tiempo real sin perturbar el subsistema de logging regular AUTOSAR AP SWS LogAndTrace p. 42.

modelliertes_logging start Logger::Log(msg_id, params) check_threshold Schwellwert erreicht? (msg.level >= threshold) start->check_threshold discard Descartar / retorno inmediato 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 Comprobación de filtros (msg_id & logmask) build_dlt->check_mask send_sink sendDltMessageToSink() check_mask->send_sink Passiert check_mask->end_node Gefiltert send_sink->end_node

Diagrama de actividades: flujo de control y filtrado al emitir mensajes modelados entre el backend DLT y el rastreo ARTI. Fuentes: [SWS_LOG_00204], [SWS_LOG_20000], AUTOSAR AP SWS LogAndTrace p. 42, PlatformDesign p. 74

Monitorización de conexiones de clientes e integración de diagnóstico

Log and Trace no solo proporciona canales de salida locales, sino que también monitoriza el estado de los clientes de diagnóstico externos (p. ej., DLT Viewer a través de Ethernet), representados por la enumeración ClientState: kUnknown (-1, backend DLT aún no listo), kNotConnected (no se detectó ningún cliente remoto) y kConnected (conexión con cliente externo activa) [SWS_LOG_00098]. Esto permite a las aplicaciones supeditar un rastreo costoso a la presencia física de una herramienta de análisis.

Para el seguimiento asíncrono del estado, las aplicaciones registran una función de retrollamada mediante ara::log::RegisterConnectionStateHandler utilizando el alias de función ConnectionStateHandler = std::function<void(ClientState)> [SWS_LOG_00205], [SWS_LOG_00265]. El framework de logging admite en este contexto exactamente un registro de manejador activo: una nueva llamada a RegisterConnectionStateHandler sobrescribe sin restricciones una retrollamada instalada previamente [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

Diagrama de estados: transiciones de estado del cliente externo según ClientState. Fuentes: [SWS_LOG_00098], [SWS_LOG_00205], [SWS_LOG_00265]

Comportamiento en caso de error

El módulo impone la seguridad funcional y la robustez principalmente mediante comprobaciones de tipos estáticas en tiempo de compilación y garantías estrictas de excepciones:

  • Errores en tiempo de compilación (ill-formed): La llamada a Logger::Log(id, args...) es no válida (ill-formed) si los argumentos pasados no coinciden exactamente con la signatura del mensaje declarada en el manifiesto [SWS_LOG_00204]. Del mismo modo, el uso de Arg() con tipos que no son aritméticos, ni booleanos, ni convertibles a StringView o Span<const Byte> provoca una interrupción de la compilación [SWS_LOG_00201]. La función WithPrivacy(value) impone además que el tipo de parámetro sea un tipo entero o una enumeración [SWS_LOG_00258].
  • Prohibiciones de construcción y asignación: Para descartar duplicaciones involuntarias de búferes o conflictos de recursos, el constructor de copia y el operador de asignación por copia de LogStream, así como el operador de asignación por movimiento, están explícitamente eliminados [SWS_LOG_00174], [SWS_LOG_00175], [SWS_LOG_00177].
  • Integridad en tiempo de ejecución durante la instanciación: Si la resolución de ara::core::InstanceSpecifier en el modelo de máquina o de aplicación falla en CreateLogger(is) o si este no hace referencia a un elemento de modelo admisible, el sistema notifica una InstanceSpecifierMappingIntegrityViolation [SWS_LOG_00256].
  • Sumideros de respaldo tolerantes a fallos: Si en tiempo de ejecución no está disponible ningún modelo de despliegue o conexión de red con el servicio DLT, el framework cambia automáticamente a la consola local como sumidero de salida predeterminado, de modo que no se pierda información de diagnóstico de forma silenciosa [SWS_LOG_00021], [SWS_LOG_00263]. Al emitir un core::ErrorCode en la consola, la representación se realiza mediante el nombre de dominio y el valor numérico del error [SWS_LOG_00124].
  • Seguridad ante excepciones: Todos los operadores de streaming, consultas de umbrales y el destructor ~LogStream() están declarados como noexcept para garantizar que el registro no propague en ningún momento excepciones no controladas hacia los bloques funcionales de la aplicación [SWS_LOG_00040], [SWS_LOG_00070], [SWS_LOG_00262]; en cambio, el destructor ~Logger() formalmente no está especificado como noexcept [SWS_LOG_00260].

Más evidencia detallada

La arquitectura y el comportamiento del módulo Log and Trace están fijados en las siguientes referencias de la especificación de AUTOSAR:

Esta guía de módulo se ha generado de forma automatizada sobre la base de las especificaciones normativas y los pasajes de documentos asociados de AUTOSAR Adaptive R25-11.

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

apext::log

TraceArti función

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 clase

Wrapper type for holding a payload argument with its attributes

Format clase

A type holding a formatting hint

Logger clase

Represents a logger context

LogStream clase

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

Entrada/salida << 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 función

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 función

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

constexpr Format AutoFloat (std::uint16_t precision=6) noexcept;
AutoFloatMax función

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 función 2

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

Sobrecargas Bin 2
constexpr Format Bin () noexcept; SWS_LOG_00215
constexpr Format Bin (std::uint16_t precision) noexcept; SWS_LOG_00216
CreateLogger función 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.

Sobrecargas 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 función 2

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

Sobrecargas Dec 2
constexpr Format Dec () noexcept; SWS_LOG_00211
constexpr Format Dec (std::uint16_t precision) noexcept; SWS_LOG_00212
DecFloat función

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

constexpr Format DecFloat (std::uint16_t precision=6) noexcept;
DecFloatMax función

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 función

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

constexpr Format Dflt () noexcept;
EngFloat función

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

constexpr Format EngFloat (std::uint16_t precision=6) noexcept;
EngFloatMax función

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 función 2

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

Sobrecargas Hex 2
constexpr Format Hex () noexcept; SWS_LOG_00209
constexpr Format Hex (std::uint16_t precision) noexcept; SWS_LOG_00210
HexFloat función

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

constexpr Format HexFloat (std::uint16_t precision) noexcept;
HexFloatMax función

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 función 2

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

Sobrecargas 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 enumeración

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

enum class ClientState : std::int8_t {...};
Fmt enumeración

Format specifiers for log message arguments .

enum class Fmt : std::uint16_t {...};
LogLevel enumeración

List of possible severity levels .

enum class LogLevel : std::uint8_t {...};

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

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

Namespaces

Diagrama de clases UML del módulo

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