日志导出功能
This commit is contained in:
parent
272b8c9142
commit
328c48dfcc
|
|
@ -1,6 +1,7 @@
|
||||||
using LY.App.Service;
|
using LY.App.Service;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace LY.App.Controllers
|
namespace LY.App.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -30,5 +31,16 @@ namespace LY.App.Controllers
|
||||||
var result = await _logService.List(pageNum, pageSize, key);
|
var result = await _logService.List(pageNum, pageSize, key);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 导出日志
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("export")]
|
||||||
|
public async Task<IActionResult> Export(string key = null)
|
||||||
|
{
|
||||||
|
var result = await _logService.DownLog(key);
|
||||||
|
return File(result, "text/plain", $"{DateTime.Now.ToString("yyyy-MM-dd")}__logfile.txt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@
|
||||||
using LY.App.Extensions.DI;
|
using LY.App.Extensions.DI;
|
||||||
using LY.App.Model;
|
using LY.App.Model;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace LY.App.Service
|
namespace LY.App.Service
|
||||||
{
|
{
|
||||||
|
|
@ -43,5 +45,20 @@ namespace LY.App.Service
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
public async Task<byte[]> DownLog(string key)
|
||||||
|
{
|
||||||
|
var query = await _db.Queryable<LogEntity>()
|
||||||
|
.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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue