From 328c48dfccdbd513a450fc53f73b5ac70323cac2 Mon Sep 17 00:00:00 2001 From: yanghongwei Date: Sat, 29 Mar 2025 09:53:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AF=BC=E5=87=BA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/LogController.cs | 12 ++++++++++++ Service/LogService.cs | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/Controllers/LogController.cs b/Controllers/LogController.cs index 7211979..c9b035e 100644 --- a/Controllers/LogController.cs +++ b/Controllers/LogController.cs @@ -1,6 +1,7 @@ using LY.App.Service; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; namespace LY.App.Controllers { @@ -30,5 +31,16 @@ namespace LY.App.Controllers var result = await _logService.List(pageNum, pageSize, key); return Ok(result); } + /// + /// 导出日志 + /// + /// + /// + [HttpGet("export")] + public async Task Export(string key = null) + { + var result = await _logService.DownLog(key); + return File(result, "text/plain", $"{DateTime.Now.ToString("yyyy-MM-dd")}__logfile.txt"); + } } } diff --git a/Service/LogService.cs b/Service/LogService.cs index 918ed42..66b2ab4 100644 --- a/Service/LogService.cs +++ b/Service/LogService.cs @@ -2,8 +2,10 @@ using LY.App.Extensions.DI; using LY.App.Model; using Mapster; +using Microsoft.Extensions.Logging; using SqlSugar; using System.Security.AccessControl; +using System.Text; namespace LY.App.Service { @@ -43,5 +45,20 @@ namespace LY.App.Service } }; } + public async Task DownLog(string key) + { + var query = await _db.Queryable() + .WhereIF(!string.IsNullOrEmpty(key), s => s.Message.Contains(key)) + .OrderByDescending(s => s.CreateTime).ToListAsync(); + // 构建文本内容 + var sb = new StringBuilder(); + foreach (var log in query) + { + sb.AppendLine($"时间:[{log.CreateTime}] -消息:[{log.Message}]- 参数: {log.Parameters}"); + } + // 将文本内容转为字节数组 + byte[] fileBytes = Encoding.UTF8.GetBytes(sb.ToString()); + return fileBytes; + } } }