diff --git a/LTEMvcApp/Controllers/MessageController.cs b/LTEMvcApp/Controllers/MessageController.cs index 8660a31..7bb1e2e 100644 --- a/LTEMvcApp/Controllers/MessageController.cs +++ b/LTEMvcApp/Controllers/MessageController.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using System.Threading; using System.IO; using System.Text; +using System.Linq; namespace LTEMvcApp.Controllers { @@ -333,15 +334,32 @@ namespace LTEMvcApp.Controllers { try { + if (messages == null || messages.Count == 0) + { + _logger.LogDebug("跳过空消息列表的日志写入: {MessageType}", messageType); + return; + } + + var validMessages = messages.Where(msg => !string.IsNullOrWhiteSpace(msg)).ToList(); + if (validMessages.Count == 0) + { + _logger.LogDebug("跳过无效消息的日志写入: {MessageType}", messageType); + return; + } + var logBuilder = new StringBuilder(); var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); - foreach (var message in messages) + foreach (var message in validMessages) { logBuilder.AppendLine($"[{timestamp}] [{address}] [{messageType}] {message}"); logBuilder.AppendLine(new string('-', 80)); } - await System.IO.File.AppendAllTextAsync(logFilePath, logBuilder.ToString(), Encoding.UTF8); - _logger.LogDebug("已记录 {Count} 条 {MessageType} 消息到文件: {FilePath}", messages.Count, messageType, logFilePath); + + if (logBuilder.Length > 0) + { + await System.IO.File.AppendAllTextAsync(logFilePath, logBuilder.ToString(), Encoding.UTF8); + _logger.LogDebug("已记录 {Count} 条 {MessageType} 消息到文件: {FilePath}", validMessages.Count, messageType, logFilePath); + } } catch (Exception ex) { diff --git a/LTEMvcApp/Views/Home/ClientMessages.cshtml b/LTEMvcApp/Views/Home/ClientMessages.cshtml index 8ef7b76..aff8605 100644 --- a/LTEMvcApp/Views/Home/ClientMessages.cshtml +++ b/LTEMvcApp/Views/Home/ClientMessages.cshtml @@ -169,6 +169,7 @@