| File: Logging\LogPropertiesAttribute.cs | Web Access |
| Project: src\src\Libraries\Microsoft.Extensions.Telemetry.Abstractions\Microsoft.Extensions.Telemetry.Abstractions.csproj (Microsoft.Extensions.Telemetry.Abstractions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Diagnostics.CodeAnalysis; using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Extensions.Logging; /// <summary> /// Marks a logging method parameter whose public properties need to be logged as log tags. /// </summary> /// <seealso cref="LoggerMessageAttribute"/> [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)] public sealed class LogPropertiesAttribute : Attribute { /// <summary> /// Gets or sets a value indicating whether <see langword="null"/> properties are logged. /// </summary> /// <value> /// Defaults to <see langword="false"/>. /// </value> public bool SkipNullProperties { get; set; } /// <summary> /// Gets or sets a value indicating whether to prefix the name of the parameter or property to the generated name of each tag being logged. /// </summary> /// <value> /// Defaults to <see langword="false"/>. /// </value> public bool OmitReferenceName { get; set; } /// <summary> /// Gets or sets a value indicating whether to transitively visit properties which are complex objects. /// </summary> /// <remarks> /// When logging the properties of an object, this property controls the behavior for each encountered property. /// When this property is <see langword="false"/>, then each property is serialized by calling <see cref="object.ToString" /> to /// generate a string for the property. When this property is <see langword="true"/>, then each property of any complex objects are /// expanded individually. /// </remarks> /// <value> /// Defaults to <see langword="false"/>. /// </value> [Experimental(diagnosticId: DiagnosticIds.Experiments.Telemetry, UrlFormat = DiagnosticIds.UrlFormat)] public bool Transitive { get; set; } }