namespace HttpClientStudy.Core.CustomHttpClient
{
    /// <summary>
    /// 自定义日志
    /// </summary>
    public class CustomLogger : IHttpClientLogger
    {
        public object? LogRequestStart(HttpRequestMessage request)
        {
            return null;
        }

        public void LogRequestStop(object? ctx, HttpRequestMessage request, HttpResponseMessage response, TimeSpan elapsed)
        {
            Console.WriteLine($"自定义日志:{request.Method} {request.RequestUri?.AbsoluteUri} - {(int)response.StatusCode} {response.StatusCode} in {elapsed.TotalMilliseconds}ms");
        }

        public void LogRequestFailed(object? ctx, HttpRequestMessage request, HttpResponseMessage? response, Exception e, TimeSpan elapsed)
        {
            Console.WriteLine($"自定义日志:{request.Method} {request.RequestUri?.AbsoluteUri} - Exception {e.GetType().FullName}: {e.Message}");
        }
    }
}