如何启用日志来控制台 Cosmos Client SDK 请求

问题描述 投票:0回答:1

如何启用所有请求的 Azure Cosmos Client SDK (NoSQL) 控制台日志?我想查看发送到服务器的完整查询。

c# azure .net-core logging azure-cosmosdb
1个回答
0
投票

您可以通过创建客户 RequestHandler 来捕获发送到服务器的查询并将其写入控制台来实现此目的。

下面的示例创建一个 CosmosClient 并注册一个自定义 RequestHandler,它将查询作为漂亮打印的 json 写入控制台。

    public class ConsoleLogRequestHandler : RequestHandler
    {
        public override Task<ResponseMessage> SendAsync(RequestMessage request, CancellationToken cancellationToken)
        {
            if (request.Content != null)
            {
                Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(
                    System.Text.Json.JsonSerializer.Deserialize<dynamic>(request.Content), 
                    new JsonSerializerOptions
                    {
                        WriteIndented = true
                    }
                ));
            }

            return base.SendAsync(request, cancellationToken);
        }
    }

    var cosmosClient = new CosmosClientBuilder(cosmosConnectionString)
            .AddCustomHandlers(new ConsoleLogRequestHandler())
            .Build();
© www.soinside.com 2019 - 2024. All rights reserved.