From 4e78b49cac7d1b3c9fde87144defa5a829b9bca4 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 10 May 2023 20:42:18 +0200 Subject: [PATCH] Improve managed exceptions logging --- Source/Engine/Scripting/ManagedCLR/MCore.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Scripting/ManagedCLR/MCore.cpp b/Source/Engine/Scripting/ManagedCLR/MCore.cpp index f56eb566c..86b906f81 100644 --- a/Source/Engine/Scripting/ManagedCLR/MCore.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MCore.cpp @@ -212,18 +212,19 @@ MType* MEvent::GetType() const void MException::Log(const LogType type, const Char* target) { // Log inner exceptions chain - auto inner = InnerException; + MException* inner = InnerException; while (inner) { - auto stackTrace = inner->StackTrace.HasChars() ? *inner->StackTrace : TEXT(""); + const Char* stackTrace = inner->StackTrace.HasChars() ? *inner->StackTrace : TEXT(""); Log::Logger::Write(LogType::Warning, String::Format(TEXT("Inner exception. {0}\nStack strace:\n{1}\n"), inner->Message, stackTrace)); inner = inner->InnerException; } // Send stack trace only to log file - auto stackTrace = StackTrace.HasChars() ? *StackTrace : TEXT(""); - Log::Logger::Write(LogType::Warning, String::Format(TEXT("Exception has been thrown during {0}. {1}\nStack strace:\n{2}"), target, Message, stackTrace)); - Log::Logger::Write(type, String::Format(TEXT("Exception has been thrown during {0}.\n{1}"), target, Message)); + const Char* stackTrace = StackTrace.HasChars() ? *StackTrace : TEXT(""); + const String info = target && *target ? String::Format(TEXT("Exception has been thrown during {0}."), target) : TEXT("Exception has been thrown."); + Log::Logger::Write(LogType::Warning, String::Format(TEXT("{0} {1}\nStack strace:\n{2}"), info, Message, stackTrace)); + Log::Logger::Write(type, String::Format(TEXT("{0}\n{1}"), info, Message)); } MType* MProperty::GetType() const