自定义日志从上下文获取相关信息

This commit is contained in:
skywolf627 2025-01-13 13:49:25 +08:00
parent 24f67b54b4
commit 0504d18429

View File

@ -61,10 +61,21 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
var jsonStr = logMsg.Context?.Get("loggingMonitor")?.ToString();
if (string.IsNullOrWhiteSpace(jsonStr))
{
var (actionName, controllerName) = ExtractActionAndController(logMsg.Message);
var title = logMsg.Context.Get("Title")?.ToString() ?? "自定义操作日志"; //从上下文获取 通过LogInformationExtension赋值
var actionName = logMsg.Context.Get("Action")?.ToString() ?? ""; //从上下文获取 由LogInformationExtension自动赋值
var controllerName = logMsg.Context.Get("Controller")?.ToString() ?? ""; //从上下文获取 由LogInformationExtension自动赋值
var url = logMsg.Context.Get("Url")?.ToString() ?? ""; //从上下文获取 由LogInformationExtension自动赋值
var method = logMsg.Context.Get("Method")?.ToString() ?? ""; //从上下文获取 由LogInformationExtension自动赋值
if (string.IsNullOrWhiteSpace(actionName) && string.IsNullOrWhiteSpace(controllerName))
{
//非LogInformationExtension调用,则从日志内容中获取控制器名称和函数名称
var (action, controller) = ExtractActionAndController(logMsg.Message);
actionName = action;
controllerName = controller;
}
await _db.Insertable(new SysLogOp
{
DisplayTitle = "自定义操作日志",
DisplayTitle = title,
LogDateTime = logMsg.LogDateTime,
ActionName = actionName,
ControllerName = controllerName,
@ -74,6 +85,8 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
Exception = logMsg.Exception == null ? null : JSON.Serialize(logMsg.Exception),
Message = logMsg.Message,
LogLevel = logMsg.LogLevel,
HttpMethod = method,
RequestUrl = url,
Status = "200",
}).ExecuteCommandAsync();
return;