我正在使用StructureMap(但是这个问题更多是基于DI的),如果答案可以通过其他实现者实现,则将予以考虑。
x.For<ITTLogger>().Use< TTLogger>().Ctor<TTLoggerConfiguration>().Is(()=>ttlConfig).ContainerScoped();
我有一个自定义记录器,已将其标记为每个httpRequest的作用域,效果很好。这样,我添加了一个通过http请求标头进入API的correlationId。
使用aspnetcore,现在可以像这样直接从端点访问标头值
[FromHeader]字符串ttcorrelationId
在我的记录器上我也可以使用correlationid
Logger.SetCorrelationId(Guid.Parse(correlationId));
现在,在api端点中出现的每个请求的标头中都具有correlationidid,它设置了记录器的值,但是当其他类需要记录器时,就不再设置correlationId。
我的问题是,是否有一种方法可以在启动时在DI配置之外的Logger上设置LoggingId,现在还无法获取标头值,以便所有随后需要该Logger的类都设置了RelationshipId?