我的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是否真的在接收变量,如果有必要,请在应用程序运行中指定它们。
或者,您可以直接运行控制台应用程序可执行文件,避免我陷入的陷阱。