如何在 .NET Core 3.0 中为 gRPC 启用日志记录
How to enable logging for gRPC in .NET Core 3.0
我有一个 ASP.NET Core 3.0 (3.0.0-preview8-28405-07) 服务器应用程序,它使用带有协议缓冲区的 gRPC (0.1.22)。我想启用记录到文件或控制台。
下面是 .Startup 文件的示例:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc(options =>
{
options.EnableDetailedErrors = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<GreeterService>();
});
}
}
和 GreeterService:
public class GreeterService : Greeter.GreeterBase
{
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
gRPC 有一个名为 Grpc.Core.Logging.ILogger 的日志 class。我如何设置它以便它记录到文件或控制台?
在 ASP.NET 核心 3 中使用 GRPC 进行日志记录的方式与任何其他 ASP.NET app.
的处理方式相同
您可以通过 运行
启用日志记录
hostBuilder.ConfigureLogging(logging =>
{
logging.AddConsole();
})
在您的 program.cs
入口点文件中或通过 运行
serviceCollection.AddLogging(logging =>
{
logging.AddConsole();
});
在 startup.cs
中的 ConfigureServices
方法中
我有一个 ASP.NET Core 3.0 (3.0.0-preview8-28405-07) 服务器应用程序,它使用带有协议缓冲区的 gRPC (0.1.22)。我想启用记录到文件或控制台。
下面是 .Startup 文件的示例:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc(options =>
{
options.EnableDetailedErrors = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<GreeterService>();
});
}
}
和 GreeterService:
public class GreeterService : Greeter.GreeterBase
{
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
gRPC 有一个名为 Grpc.Core.Logging.ILogger 的日志 class。我如何设置它以便它记录到文件或控制台?
在 ASP.NET 核心 3 中使用 GRPC 进行日志记录的方式与任何其他 ASP.NET app.
的处理方式相同您可以通过 运行
启用日志记录hostBuilder.ConfigureLogging(logging =>
{
logging.AddConsole();
})
在您的 program.cs
入口点文件中或通过 运行
serviceCollection.AddLogging(logging =>
{
logging.AddConsole();
});
在 startup.cs
ConfigureServices
方法中