You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.8 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using EntrustSettle.Common.Helper;
using Microsoft.Extensions.Logging;
//using NLog;
using RestSharp;
using System;
using System.Linq;
namespace EntrustSettle.Common
{
public static class RestSharpLogHelper
{
public static void LogRestSharp(this ILogger logger, string title, IRestClient client, RestRequest request, RestResponse response)
{
var requestToLog = new
{
resource = request.Resource,
// Parameters are custom anonymous objects in order to have the parameter type as a nice string
// otherwise it will just show the enum value
parameters = request.Parameters.Select(parameter => new
{
name = parameter.Name,
value = parameter.Value,
type = parameter.Type.ToString()
}),
// ToString() here to have the method as a nice string otherwise it will just show the enum value
method = request.Method.ToString(),
// This will generate the actual Uri used in the request
uri = client.BuildUri(request),
};
var responseToLog = new
{
statusCode = response.StatusCode,
content = response.Content,
headers = response.Headers,
// The Uri that actually responded (could be different from the requestUri if a redirection occurred)
responseUri = response.ResponseUri,
errorMessage = response.ErrorMessage,
};
logger.LogInformation($"Http请求目标{title}{Environment.NewLine}Request:{{Request}}{Environment.NewLine}Response:{{Response}}", JsonHelper.ObjToJson(requestToLog), JsonHelper.ObjToJson(responseToLog));
}
}
}