diff --git a/src/core/common/log.cpp b/src/core/common/log.cpp index 2018fcf72..495ae44b4 100644 --- a/src/core/common/log.cpp +++ b/src/core/common/log.cpp @@ -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().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().GetUptime(), logString, /* aInlcudeMsec */ true); + logString.Append(" "); + } #endif #if OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE