| File: ILogger.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Logging.Abstractions\src\Microsoft.Extensions.Logging.Abstractions.csproj (Microsoft.Extensions.Logging.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; namespace Microsoft.Extensions.Logging { /// <summary> /// Represents a type used to perform logging. /// </summary> /// <remarks>This interface aggregates most logging patterns to a single method.</remarks> public interface ILogger { /// <summary> /// Writes a log entry. /// </summary> /// <param name="logLevel">The level at which to write the event.</param> /// <param name="eventId">The ID of the event.</param> /// <param name="state">The entry to be written. Can also be an object.</param> /// <param name="exception">The exception related to this entry.</param> /// <param name="formatter">The function to create a <see cref="string"/> message of the <paramref name="state"/> and <paramref name="exception"/>.</param> /// <typeparam name="TState">The type of the object to be written.</typeparam> void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func<TState, Exception?, string> formatter); /// <summary> /// Checks if the given <paramref name="logLevel"/> is enabled. /// </summary> /// <param name="logLevel">Level to be checked.</param> /// <returns><see langword="true" /> if enabled.</returns> bool IsEnabled(LogLevel logLevel); /// <summary> /// Begins a logical operation scope. /// </summary> /// <param name="state">The identifier for the scope.</param> /// <typeparam name="TState">The type of the state to begin scope for.</typeparam> /// <returns>An <see cref="IDisposable"/> that ends the logical operation scope on dispose.</returns> IDisposable? BeginScope<TState>(TState state) where TState : notnull; } }