针对自定义操作日志根据内容解析出控制器名称和函数名称
反正在操作日志列表中,只显示一个自定义操作日志,都看不到具体的函数名称。
This commit is contained in:
parent
73626e6884
commit
2f039f2865
@ -29,15 +29,46 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
|
|||||||
: SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
|
: SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据操作日志内容解析出控制器名称和函数名称
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="logText"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static (string actionName, string controllerName) ExtractActionAndController(string logText)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 获取第二行
|
||||||
|
var targetLine = logText.Split('\n')[1];
|
||||||
|
// 按点号分割字符串
|
||||||
|
var parts = targetLine.Split('.');
|
||||||
|
// 获取最后两个部分
|
||||||
|
if (parts.Length >= 2)
|
||||||
|
{
|
||||||
|
var actionName = parts[^1].Split('(')[0].Trim(); // 去除方法参数部分
|
||||||
|
var controllerName = parts[^2].Trim(); // 获取Controller名称
|
||||||
|
return (actionName, controllerName);
|
||||||
|
}
|
||||||
|
return (string.Empty, string.Empty);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return (string.Empty, string.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task WriteAsync(LogMessage logMsg, bool flush)
|
public async Task WriteAsync(LogMessage logMsg, bool flush)
|
||||||
{
|
{
|
||||||
var jsonStr = logMsg.Context?.Get("loggingMonitor")?.ToString();
|
var jsonStr = logMsg.Context?.Get("loggingMonitor")?.ToString();
|
||||||
if (string.IsNullOrWhiteSpace(jsonStr))
|
if (string.IsNullOrWhiteSpace(jsonStr))
|
||||||
{
|
{
|
||||||
|
var (actionName, controllerName) = ExtractActionAndController(logMsg.Message);
|
||||||
await _db.Insertable(new SysLogOp
|
await _db.Insertable(new SysLogOp
|
||||||
{
|
{
|
||||||
DisplayTitle = "自定义操作日志",
|
DisplayTitle = "自定义操作日志",
|
||||||
LogDateTime = logMsg.LogDateTime,
|
LogDateTime = logMsg.LogDateTime,
|
||||||
|
ActionName = actionName,
|
||||||
|
ControllerName = controllerName,
|
||||||
EventId = logMsg.EventId.Id,
|
EventId = logMsg.EventId.Id,
|
||||||
ThreadId = logMsg.ThreadId,
|
ThreadId = logMsg.ThreadId,
|
||||||
TraceId = logMsg.TraceId,
|
TraceId = logMsg.TraceId,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user