【发布时间】:2015-09-04 02:44:06
【问题描述】:
我正在尝试向 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)
);
它工作正常,但有时我必须先处理数据才能使用它(比如迭代包含方法参数的字典)。我对想法持开放态度。
【问题讨论】: