@@ -109,7 +109,8 @@ size_t AddTimeStampAndPrefixStr(char * logBuffer, const char * prefix, size_t ma
109109 {
110110 return 0 ; // Likely a snprintf error
111111 }
112- return snprintf (logBuffer + timestampLen, maxSize - timestampLen, " %s" , prefix);
112+ int chWritten = snprintf (logBuffer + timestampLen, maxSize - timestampLen, " %s" , prefix);
113+ return (chWritten > 0 ) ? static_cast <size_t >(chWritten) + timestampLen : timestampLen;
113114}
114115size_t FormatTimestamp (char * buffer, size_t maxSize, uint64_t timestampMillis)
115116{
@@ -124,7 +125,8 @@ size_t FormatTimestamp(char * buffer, size_t maxSize, uint64_t timestampMillis)
124125 uint8_t minutes = totalSeconds % 60 ;
125126 uint32_t hours = totalSeconds / 60 ;
126127
127- return snprintf (buffer, maxSize, " [%04lu:%02u:%02u.%03u]" , hours, minutes, seconds, milliseconds);
128+ int chWritten = snprintf (buffer, maxSize, " [%04lu:%02u:%02u.%03u]" , hours, minutes, seconds, milliseconds);
129+ return (chWritten > 0 ) ? static_cast <size_t >(chWritten) : 0 ;
128130}
129131
130132void HandleLog (const char * module , LogCategory category, const char * aFormat, va_list v)
@@ -135,17 +137,22 @@ void HandleLog(const char * module, LogCategory category, const char * aFormat,
135137 kTimeStampStringSize + kMaxCategoryStrLen ); // Greater than to at least accommodate a ending Null Character
136138
137139 size_t prefixLen = 0 ;
140+ #if !SILABS_LOG_OUT_UART
141+ prefixLen += chip::Logging::Platform::AddTimeStampAndPrefixStr (
142+ formattedMsg, reinterpret_cast <const char *>(GetCategoryString (category)), CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE );
143+ #endif // SILABS_LOG_OUT_UART
144+
138145 size_t moduleLen = strlen (module );
139- if (( moduleLen > 0 ) && (moduleLen < CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE ) )
146+ if (moduleLen > 0 )
140147 {
141148 // Prepend module name if available
142- prefixLen = snprintf (formattedMsg, sizeof (formattedMsg), " [%s] " , module );
149+ int moduleNameLen = snprintf (formattedMsg + prefixLen, sizeof (formattedMsg) - prefixLen, " [%s] " , module );
150+ if (moduleNameLen > 0 )
151+ {
152+ prefixLen += static_cast <size_t >(moduleNameLen);
153+ }
143154 }
144155
145- #if !SILABS_LOG_OUT_UART
146- prefixLen += chip::Logging::Platform::AddTimeStampAndPrefixStr (
147- formattedMsg, reinterpret_cast <const char *>(GetCategoryString (category)), CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE );
148- #endif // SILABS_LOG_OUT_UART
149156 if (prefixLen >= sizeof formattedMsg)
150157 {
151158 prefixLen = sizeof formattedMsg - 1 ; // prevent overflow
@@ -183,21 +190,15 @@ static void PrintLog(const char * msg)
183190 if (sLogInitialized )
184191 {
185192 size_t sz;
186- sz = strlen (msg);
187-
193+ sz = strlen (msg);
194+ const char * newline = " \r\n " ;
188195#if defined(PW_RPC_ENABLED) && PW_RPC_ENABLED
189196 PigweedLogger::putString (msg, sz);
190- #endif // PW_RPC_ENABLED
197+ PigweedLogger::putString (newline, 2 );
198+ #else
191199 SEGGER_RTT_WriteNoLock (LOG_RTT_BUFFER_INDEX , msg, sz);
192-
193- #if defined(PW_RPC_ENABLED) && PW_RPC_ENABLED
194- const char * newline = " \r\n " ;
195- sz = strlen (newline);
196- #if defined(PW_RPC_ENABLED) && PW_RPC_ENABLED
197- PigweedLogger::putString (newline, sz);
200+ SEGGER_RTT_WriteNoLock (LOG_RTT_BUFFER_INDEX , newline, 2 );
198201#endif // PW_RPC_ENABLED
199- SEGGER_RTT_WriteNoLock (LOG_RTT_BUFFER_INDEX , newline, sz);
200- #endif
201202 }
202203}
203204#endif // !SILABS_LOG_OUT_UART
0 commit comments