为什么我在.NET Core中为GRPC设置的日志记录无法输出到控制台



我的appsettings中有以下配置。控制台应用程序中的Development.json:

{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information",
"Grpc" : "Debug"
}
}
}

我的主要程序,通过Google.Cloud.SecretManager.V1间接测试GPRC调用,如下所示:

class Program
{
static void Main(string[] args)
{
try
{
var client = SecretManagerServiceClient.Create();
var result = client.AccessSecretVersion(new SecretVersionName("some-project-id", "some_secret_key", "latest"));
}
catch (Exception ex)
{
Console.WriteLine(ex); 
}
}
}

当我调试应用程序时,尽管设置了以下环境变量,但我没有得到任何日志:

GRPC_TRACE=all
GRPC_VERBOSITY=DEBUG

我希望通过控制台输出进行日志记录

我一直在使用以下页面作为参考:

  • https://learn.microsoft.com/en-us/aspnet/core/grpc/diagnostics?view=aspnetcore-3.1
  • https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1

我错过了什么?

在更广泛的背景下,这个问题源于尝试解决GRPC问题

我的误解是控制台应用程序根本不需要appsettings文件。我也不需要在ConfigureServices这样的方法中配置任何自定义日志记录。

我所需要做的就是正确设置环境变量。我确实在窗口中为我的用户配置了这些变量,但奇怪的是,Rider并没有使用这些变量。

一旦我在Rider中的调试设置中配置了这些变量,我就得到了所需的输出。

任何有类似问题的人都应该仔细检查他们的IDE是否真的在接收变量,如果有必要,请在应用程序运行中指定它们。

或者,您可以直接运行控制台应用程序可执行文件,避免我陷入的陷阱。

最新更新