public static void UseHttpTraceActuator(IConfiguration configuration, IHttpTraceRepository traceRepository = null, ILoggerFactory loggerFactory = null) { var options = new HttpTraceEndpointOptions(configuration); _mgmtOptions.RegisterEndpointOptions(configuration, options); traceRepository = traceRepository ?? new HttpTraceDiagnosticObserver(options, CreateLogger <HttpTraceDiagnosticObserver>(loggerFactory)); DiagnosticsManager.Instance.Observers.Add((IDiagnosticObserver)traceRepository); var ep = new HttpTraceEndpoint(options, traceRepository, CreateLogger <HttpTraceEndpoint>(loggerFactory)); var handler = new HttpTraceHandler(ep, SecurityServices, _mgmtOptions, CreateLogger <HttpTraceHandler>(loggerFactory)); ConfiguredHandlers.Add(handler); }
/// <summary>创建客户端</summary> /// <returns></returns> protected virtual HttpClient CreateClient() { HttpMessageHandler handler = new HttpClientHandler { UseProxy = UseProxy }; if (Tracer != null) { handler = new HttpTraceHandler(handler) { Tracer = Tracer } } ; var client = new HttpClient(handler) { Timeout = TimeSpan.FromMilliseconds(Timeout) }; return(client); }