在serilog中,我可以使用以下代码将多个属性推送到日志中。我在一个中间件中这样做是为了从上下文中推送属性。如何使用liblog执行此操作?
using (LogContext.PushProperties(
new PropertyEnricher(Constants.CorelationId, id),
new PropertyEnricher(Constants.ClientId, context.GetClientId()),
new PropertyEnricher(IdentityServiceConstants.RemoteIpAddress, context.Request.RemoteIpAddress)))
{
await next();
}
在哪里可以找到有关openmappedcontext和nestedcontext的更多信息?
最佳答案
以下方法似乎有效:
var logger = LogProvider.For<SomeType>();
using (LogProvider.OpenMappedContext("Foo", "12"))
using (LogProvider.OpenMappedContext("Bar", "34"))
using (LogProvider.OpenMappedContext("Last", "56"))
{
logger.InfoFormat("testing {somePlaceholder}", 78);
}
关于OpenAppedContext和OpenNestedContext的使用,似乎没有太多的文档。但是,liblog src代码似乎只是在幕后吸收pushproperty方法,以便在openmappedcontext中使用。