| File: Logging\Internal\LogRecord.cs | Web Access |
| Project: src\src\Libraries\Microsoft.Extensions.Http.Diagnostics\Microsoft.Extensions.Http.Diagnostics.csproj (Microsoft.Extensions.Http.Diagnostics) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Buffers; using System.Collections.Generic; using System.Net.Http; using Microsoft.Extensions.Http.Diagnostics; using Microsoft.Extensions.Logging; using Microsoft.Extensions.ObjectPool; namespace Microsoft.Extensions.Http.Logging.Internal; /// <summary> /// Parsed HTTP information. /// </summary> internal sealed class LogRecord : IResettable { /// <summary> /// Gets or sets HTTP host. /// </summary> public string Host { get; set; } = string.Empty; /// <summary> /// Gets or sets HTTP request method. /// </summary> public HttpMethod? Method { get; set; } /// <summary> /// Gets or sets parsed request path. /// </summary> public string Path { get; set; } = string.Empty; /// <summary> /// Gets or sets HTTP request duration in milliseconds. /// </summary> public long Duration { get; set; } /// <summary> /// Gets or sets HTTP response status code. /// </summary> public int? StatusCode { get; set; } /// <summary> /// Gets or sets parsed list of request headers. /// </summary> public List<KeyValuePair<string, string>>? RequestHeaders { get; set; } /// <summary> /// Gets or sets parsed list of headers. /// </summary> public List<KeyValuePair<string, string>>? ResponseHeaders { get; set; } /// <summary> /// Gets or sets parsed request body. /// </summary> public string? RequestBody { get; set; } /// <summary> /// Gets or sets parsed response body. /// </summary> public string? ResponseBody { get; set; } /// <summary> /// Gets or sets enrichment properties. /// </summary> public LoggerMessageState? EnrichmentTags { get; set; } /// <summary> /// Gets or sets request path parameters. /// </summary> public HttpRouteParameter[]? PathParameters { get; set; } /// <summary> /// Gets or sets request path parameters count for <see cref="PathParameters"/>. /// </summary> public int PathParametersCount { get; set; } /// <summary> /// Gets or sets formatted query parameters. /// </summary> public string? QueryString { get; set; } public bool TryReset() { if (PathParameters != null) { ArrayPool<HttpRouteParameter>.Shared.Return(PathParameters); PathParameters = null; } Host = string.Empty; Method = null; Path = string.Empty; Duration = 0; StatusCode = null; RequestBody = null; ResponseBody = null; EnrichmentTags = null; RequestHeaders = null; ResponseHeaders = null; PathParametersCount = 0; QueryString = string.Empty; return true; } }