Logging - Platform#

This module includes the platform abstraction for the debug log service.

Enumerations#

enum
OT_LOG_REGION_API = 1
OT_LOG_REGION_MLE = 2
OT_LOG_REGION_ARP = 3
OT_LOG_REGION_NET_DATA = 4
OT_LOG_REGION_ICMP = 5
OT_LOG_REGION_IP6 = 6
OT_LOG_REGION_TCP = 7
OT_LOG_REGION_MAC = 8
OT_LOG_REGION_MEM = 9
OT_LOG_REGION_NCP = 10
OT_LOG_REGION_MESH_COP = 11
OT_LOG_REGION_NET_DIAG = 12
OT_LOG_REGION_PLATFORM = 13
OT_LOG_REGION_COAP = 14
OT_LOG_REGION_CLI = 15
OT_LOG_REGION_CORE = 16
OT_LOG_REGION_UTIL = 17
OT_LOG_REGION_BBR = 18
OT_LOG_REGION_MLR = 19
OT_LOG_REGION_DUA = 20
OT_LOG_REGION_BR = 21
OT_LOG_REGION_SRP = 22
OT_LOG_REGION_DNS = 23
}

Represents log regions.

Typedefs#

typedef int

Represents the log level.

typedef enum otLogRegion

Represents log regions.

Functions#

void
otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat,...)

Outputs logs.

void
otPlatLogOutput(otInstance *aInstance, otLogLevel aLogLevel, const char *aLogLine)

Outputs a log line.

void
otPlatLogHandleLevelChanged(otLogLevel aLogLevel)

Handles OpenThread log level changes.

void
otPlatLogHandleLogLevelChanged(otInstance *aInstance, otLogLevel aLogLevel)

Handles OpenThread instance-specific log level changes.

Macros#

#define
OT_LOG_LEVEL_NONE 0

Log level None.

#define
OT_LOG_LEVEL_CRIT 1

Log level Critical.

#define
OT_LOG_LEVEL_WARN 2

Log level Warning.

#define
OT_LOG_LEVEL_NOTE 3

Log level Notice.

#define
OT_LOG_LEVEL_INFO 4

Log level Informational.

#define
OT_LOG_LEVEL_DEBG 5

Log level Debug.

Enumeration Documentation#

otLogRegion#

otLogRegion

Represents log regions.

The support for log region is removed and instead each core module can define its own name to appended to the logs. However, the otLogRegion enumeration is still defined as before to help with platforms which we may be using it in their otPlatLog() implementation. The OT core will always emit all logs with OT_LOG_REGION_CORE.

Enumerator
OT_LOG_REGION_API

OpenThread API.

OT_LOG_REGION_MLE

MLE.

OT_LOG_REGION_ARP

EID-to-RLOC mapping.

OT_LOG_REGION_NET_DATA

Network Data.

OT_LOG_REGION_ICMP

ICMPv6.

OT_LOG_REGION_IP6

IPv6.

OT_LOG_REGION_TCP

TCP.

OT_LOG_REGION_MAC

IEEE 802.15.4 MAC.

OT_LOG_REGION_MEM

Memory.

OT_LOG_REGION_NCP

NCP.

OT_LOG_REGION_MESH_COP

Mesh Commissioning Protocol.

OT_LOG_REGION_NET_DIAG

Network Diagnostic.

OT_LOG_REGION_PLATFORM

Platform.

OT_LOG_REGION_COAP

CoAP.

OT_LOG_REGION_CLI

CLI.

OT_LOG_REGION_CORE

OpenThread Core.

OT_LOG_REGION_UTIL

Utility module.

OT_LOG_REGION_BBR

Backbone Router (available since Thread 1.2)

OT_LOG_REGION_MLR

Multicast Listener Registration (available since Thread 1.2)

OT_LOG_REGION_DUA

Domain Unicast Address (available since Thread 1.2)

OT_LOG_REGION_BR

Border Router.

OT_LOG_REGION_SRP

Service Registration Protocol (SRP)

OT_LOG_REGION_DNS

DNS.


Typedef Documentation#

otLogLevel#

typedef int otLogLevel

Represents the log level.


otLogRegion#

typedef enum otLogRegion otLogRegion

Represents log regions.

The support for log region is removed and instead each core module can define its own name to appended to the logs. However, the otLogRegion enumeration is still defined as before to help with platforms which we may be using it in their otPlatLog() implementation. The OT core will always emit all logs with OT_LOG_REGION_CORE.


Function Documentation#

otPlatLog#

void otPlatLog (otLogLevel aLogLevel, otLogRegion aLogRegion, const char * aFormat, ... )

Outputs logs.

Parameters
TypeDirectionArgument NameDescription
otLogLevel[in]aLogLevel

The log level.

otLogRegion[in]aLogRegion

The log region.

const char *[in]aFormat

A pointer to the format string.

...[in]

Arguments for the format specification.

This platform API is used to output logs when the configuration OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE is disabled. When the configuration is enabled, otPlatLogOutput() is used instead.

Note that the support for log region is removed. The OT core will always emit all logs with OT_LOG_REGION_CORE as aLogRegion.


otPlatLogOutput#

void otPlatLogOutput (otInstance * aInstance, otLogLevel aLogLevel, const char * aLogLine)

Outputs a log line.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to the OpenThread instance.

otLogLevel[in]aLogLevel

The log level.

const char *[in]aLogLine

A pointer to the null-terminated string containing the log line.

This platform API is an alternative to otPlatLog() and is used when the configuration OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE is enabled.

Unlike otPlatLog(), this API also provides a pointer to the OpenThread instance (otInstance*) from which the log is generated. This is particularly helpful in a multi-instance setup to distinguish logs from different instances. Additionally, it provides the log line as a fully formatted null-terminated string instead of a format string and variable arguments.


otPlatLogHandleLevelChanged#

void otPlatLogHandleLevelChanged (otLogLevel aLogLevel)

Handles OpenThread log level changes.

Parameters
TypeDirectionArgument NameDescription
otLogLevel[in]aLogLevel

The new OpenThread log level.

This platform function is optional. An empty weak implementation is provided by OpenThread core.

This platform function is called whenever the OpenThread log level changes:

  • In a single-instance configuration, this is called when the log level changes.

  • In a multi-instance configuration, this is called when the global log level changes.

Note

  • Only applicable when OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1.


otPlatLogHandleLogLevelChanged#

void otPlatLogHandleLogLevelChanged (otInstance * aInstance, otLogLevel aLogLevel)

Handles OpenThread instance-specific log level changes.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to the OpenThread instance.

otLogLevel[in]aLogLevel

The new OpenThread log level for the instance.

This platform function is optional. An empty weak implementation is provided by OpenThread core.

This platform function is called whenever the instance-specific log level changes:

  • In a single-instance configuration, this is called along with otPlatLogHandleLevelChanged().

  • In a multi-instance configuration, if OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE is used, this is called when the instance-specific log level changes.