我正在尝试将动态自定义属性添加到 Serilog,但我不确定如何按照我想要的方式进行操作。这是代码:
if (data.Exception != null)
{
_logger.ForContext("Exception", data.Exception, true);
}
await Task.Run(() =>
_logger.ForContext("User", _loggedUser.Id)
.Information(ControllerActionsFormat.RequestId_ExecutedAction, data.RequestId, data.ActionName)
);
但 Exception 属性没有被持久化。我努力了:
await Task.Run(() =>
_logger.ForContext("Exception", data.Exception, true)
.ForContext("User", _loggedUser.Id)
.Information(ControllerActionsFormat.RequestId_ExecutedAction, data.RequestId, data.ActionName)
);
它工作正常,但有时我必须先处理数据才能使用它(比如迭代包含方法参数的字典)。我对想法持开放态度。