From efcbc7ccd731d1cd2f2c50b5663a47a6dfadba6d Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Thu, 2 Dec 2021 14:36:41 -0800 Subject: [PATCH 1/4] Removing code which was supposed to add a newline, but never did. The comment said it was required because of an assumption with Trace, but clearly Trace doesn't make that assumption Signed-off-by: Gene Walters --- Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp index 4d00443186..edff76f827 100644 --- a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp @@ -125,8 +125,6 @@ namespace AZ buffer[AZStd::min(length + 1, MaxLogBufferSize - 1)] = '\0'; m_logEvent.Signal(level, buffer, file, function, line); - // Force a new-line before calling the AZ::Debug::Trace functions, as they assume a newline is present - buffer[AZStd::min(length + 1, MaxLogBufferSize - 2)] = '\n'; switch (level) { case LogLevel::Warn: From d4e7a9cf16de074f4bbea7c284ac97a9f1a04696 Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Thu, 2 Dec 2021 14:41:24 -0800 Subject: [PATCH 2/4] Removing adding the null-terminator by hand. _vsnprintf_s already does this. Even if the buffer is too small, the /0 is still at the end Signed-off-by: Gene Walters --- Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp index edff76f827..1feb93c52a 100644 --- a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp @@ -122,7 +122,6 @@ namespace AZ char buffer[MaxLogBufferSize]; const AZStd::size_t length = azvsnprintf(buffer, MaxLogBufferSize, format, args); - buffer[AZStd::min(length + 1, MaxLogBufferSize - 1)] = '\0'; m_logEvent.Signal(level, buffer, file, function, line); switch (level) From e2d1cdc9a5da110c306e2225bde1601ee2de31ec Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Fri, 3 Dec 2021 10:07:28 -0800 Subject: [PATCH 3/4] Update Logger to use fixed_string Signed-off-by: Gene Walters --- .../AzCore/AzCore/Console/LoggerSystemComponent.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp index 1feb93c52a..6406f5924b 100644 --- a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp @@ -119,22 +119,21 @@ namespace AZ void LoggerSystemComponent::LogInternalV(LogLevel level, const char* format, const char* file, const char* function, int32_t line, va_list args) { constexpr AZStd::size_t MaxLogBufferSize = 1000; - char buffer[MaxLogBufferSize]; + auto buffer = AZStd::fixed_string::format_arg(format, args); - const AZStd::size_t length = azvsnprintf(buffer, MaxLogBufferSize, format, args); - m_logEvent.Signal(level, buffer, file, function, line); + m_logEvent.Signal(level, buffer.c_str(), file, function, line); switch (level) { case LogLevel::Warn: - AZ_Warning("Logger", true, buffer); + AZ_Warning("Logger", true, buffer.c_str()); break; case LogLevel::Error: - AZ_Error("Logger", true, buffer); + AZ_Error("Logger", true, buffer.c_str()); break; default: // Catch all else with trace - AZ::Debug::Trace::Output("Logger", buffer); + AZ::Debug::Trace::Output("Logger", buffer.c_str()); break; } } From b123379380bce05bed51e1714a321b5b945c05f5 Mon Sep 17 00:00:00 2001 From: Gene Walters Date: Tue, 7 Dec 2021 14:53:59 -0800 Subject: [PATCH 4/4] Properly adding newlines when using LogInternalV; removing the need of hand-placed newlines to AZ_LOG Signed-off-by: Gene Walters --- Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp | 2 +- .../AzNetworking/TcpTransport/TcpNetworkInterface.cpp | 2 +- .../Code/Source/Editor/MultiplayerEditorConnection.cpp | 2 +- Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp index 6406f5924b..2794dfdc40 100644 --- a/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Console/LoggerSystemComponent.cpp @@ -120,8 +120,8 @@ namespace AZ { constexpr AZStd::size_t MaxLogBufferSize = 1000; auto buffer = AZStd::fixed_string::format_arg(format, args); - m_logEvent.Signal(level, buffer.c_str(), file, function, line); + buffer += '\n'; switch (level) { diff --git a/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.cpp b/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.cpp index 6fa720f296..18ce25c4dd 100644 --- a/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.cpp +++ b/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.cpp @@ -92,7 +92,7 @@ namespace AzNetworking return InvalidConnectionId; } - AZLOG_INFO("Adding new socket %d\n", static_cast(tcpSocket->GetSocketFd())); + AZLOG_INFO("Adding new socket %d", static_cast(tcpSocket->GetSocketFd())); connection->SendReliablePacket(CorePackets::InitiateConnectionPacket()); m_connectionListener.OnConnect(connection.get()); m_connectionSet.AddConnection(AZStd::move(connection)); diff --git a/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorConnection.cpp b/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorConnection.cpp index a245bc0cca..d3489b6e4e 100644 --- a/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorConnection.cpp +++ b/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorConnection.cpp @@ -161,7 +161,7 @@ namespace Multiplayer networkInterface->Listen(sv_port); - AZLOG_INFO("Editor Server completed receiving the editor's level assets, responding to Editor...\n") + AZLOG_INFO("Editor Server completed receiving the editor's level assets, responding to Editor...") return connection->SendReliablePacket(MultiplayerEditorPackets::EditorServerReady()); } diff --git a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp index 7340bde704..dcad230f71 100644 --- a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp +++ b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp @@ -857,7 +857,7 @@ namespace Multiplayer EnableAutonomousControl(controlledEntity, AzNetworking::InvalidConnectionId); } - AZLOG_INFO("Multiplayer operating in %s mode\n", GetEnumString(m_agentType)); + AZLOG_INFO("Multiplayer operating in %s mode", GetEnumString(m_agentType)); } void MultiplayerSystemComponent::AddClientMigrationStartEventHandler(ClientMigrationStartEvent::Handler& handler)