mirror of
https://github.com/espressif/openthread.git
synced 2026-08-13 06:07:48 +00:00
[logging] support uptime prepending in multi-instance builds (#12761)
This commit adds support for `OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME` in multi-instance builds. When `OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE` is enabled, the uptime is retrieved from the currently active `Instance` using `Instance::GetActiveInstance()`. This requires `OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE` to be enabled so that the `Logger` can identify the instance and access its `UptimeTracker`. A compile-time check is added to ensure that `OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE` is set when `OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME` is used in a multi-instance build.
This commit is contained in:
+14
-7
@@ -56,10 +56,6 @@
|
||||
#error "OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME requires OPENTHREAD_CONFIG_UPTIME_ENABLE"
|
||||
#endif
|
||||
|
||||
#if OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME && OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
|
||||
#error "OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME is not supported under OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE"
|
||||
#endif
|
||||
|
||||
namespace ot {
|
||||
|
||||
#if OT_SHOULD_LOG
|
||||
@@ -126,9 +122,20 @@ void Logger::Log(const char *aModuleName, LogLevel aLogLevel, Error aError, cons
|
||||
static_assert(sizeof(kModuleNamePadding) == kMaxLogModuleNameLength + 1, "Padding string is not correct");
|
||||
|
||||
#if OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME
|
||||
ot::UptimeToString(ot::Instance::Get().Get<ot::UptimeTracker>().GetUptime(), logString,
|
||||
/* aInlcudeMsec */ true);
|
||||
logString.Append(" ");
|
||||
{
|
||||
Instance *instance;
|
||||
|
||||
#if !OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
|
||||
instance = &ot::Instance::Get();
|
||||
#elif OPENTHREAD_CONFIG_LOG_INSTANCE_AWARE_API_ENABLE
|
||||
instance = Instance::GetActiveInstance();
|
||||
VerifyOrExit(instance != nullptr);
|
||||
#else
|
||||
#error "OPENTHREAD_CONFIG_LOG_PREPEND_UPTIME requires LOG_INSTANCE_AWARE_API_ENABLE under multi-instance"
|
||||
#endif
|
||||
ot::UptimeToString(instance->Get<ot::UptimeTracker>().GetUptime(), logString, /* aInlcudeMsec */ true);
|
||||
logString.Append(" ");
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE
|
||||
|
||||
Reference in New Issue
Block a user