如何启用所有请求的 Azure Cosmos Client SDK (NoSQL) 控制台日志?我想查看发送到服务器的完整查询。
您可以通过创建客户 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();