From 3dc18504e26a58a35bb19c6a3ce8426ce9c6b140 Mon Sep 17 00:00:00 2001 From: root <295172551@qq.com> Date: Thu, 26 Jun 2025 01:26:20 +0800 Subject: [PATCH] 123131 --- LTEMvcApp/Controllers/MessageController.cs | 24 +++++++++-- LTEMvcApp/Views/Home/ClientMessages.cshtml | 47 +++++++++++++++++++++- 2 files changed, 66 insertions(+), 5 deletions(-) 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 @@

客户端消息队列 - @address

正在连接... + @@ -180,7 +181,14 @@
-
消息日志文件管理
+
+
消息日志文件管理
+
+ 0 个文件 | + 0 KB | + - +
+
正在加载日志文件列表...
@@ -322,8 +330,20 @@ if (response.files && response.files.length > 0) { const filesHtml = response.files.map(file => createLogFileItemHtml(file)).join(''); $('#logFilesContainer').html(filesHtml); + + // 更新统计信息 + const totalSize = response.files.reduce((sum, file) => sum + file.size, 0); + const totalSizeKB = Math.round(totalSize / 1024 * 100) / 100; + const nonEmptyFiles = response.files.filter(file => file.size > 0).length; + + $('#totalFiles').text(`${nonEmptyFiles}/${response.files.length}`); + $('#totalSize').text(totalSizeKB); + $('#lastUpdate').text(new Date().toLocaleTimeString()); } else { $('#logFilesContainer').html('
暂无日志文件
'); + $('#totalFiles').text('0/0'); + $('#totalSize').text('0'); + $('#lastUpdate').text(new Date().toLocaleTimeString()); } }) .fail(function(xhr) { @@ -335,19 +355,23 @@ function createLogFileItemHtml(file) { const sizeKB = Math.round(file.size / 1024 * 100) / 100; const lastModified = new Date(file.lastModified).toLocaleString(); + const isEmpty = file.size === 0; + const statusClass = isEmpty ? 'text-muted' : 'text-success'; + const statusText = isEmpty ? '空文件' : '有数据'; return `
${file.fileName} + ${statusText}
类型: ${file.type} | 大小: ${sizeKB} KB | 修改时间: ${lastModified}
-