如何在.NET Core 3.0中启用gRPC的日志记录

时间:2019-08-24 21:12:52

标签: c# asp.net-core grpc .net-core-3.0 asp.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的日志记录类。如何设置它以便将其记录到文件或控制台?

1 个答案:

答案 0 :(得分:0)

对于ASP.NET Core 3中的GRPC登录,其他任何ASP.NET app的处理方式都相同。

您可以通过运行

启用日志记录
hostBuilder.ConfigureLogging(logging =>
        {
            logging.AddConsole();
        })

在您的program.cs入口点文件中,或者通过运行

serviceCollection.AddLogging(logging =>
            {
                logging.AddConsole();
            });

在您的ConfigureServices中的startup.cs方法中