网上大部分教程都是较低版本的用startup类的.net。很少用新版本.net7连接的。
写在program.cs的var app = builder.Build();之后
主要是要把ILoggerFactory的服务取出来当参数
//这一步是网上教程没有的
ILoggerFactory loggerFactory = app.Services.GetRequiredService<ILoggerFactory>();
app.Lifetime.ApplicationStarted.Register(() =>
{
//记录数据密度,1.0代表全部记录
TraceManager.SamplingRate = 1.0f;
//链路日志
var logger = new TracingLogger(loggerFactory, "zipkin4net");
//zipkin服务地址和内容类型
var httpSender = new HttpZipkinSender("http://localhost:9411/", "application/json");
var tracer = new ZipkinTracer(httpSender, new JSONSpanSerializer(), new Statistics());
var consoleTracer = new zipkin4net.Tracers.ConsoleTracer();
TraceManager.RegisterTracer(tracer);
TraceManager.RegisterTracer(consoleTracer);
TraceManager.Start(logger);
});
//程序停止时停止链路跟踪
app.Lifetime.ApplicationStopped.Register(() => TraceManager.Stop());
//引入zipkin中间件,用于跟踪服务请求,这边的名字可自定义代表当前服务名称
app.UseTracing(app.Configuration["nacos:ServiceName"]);
参考了这篇文章。