| File: Logger.cs | Web Access |
| Project: src\msbuild\src\Utilities\Microsoft.Build.Utilities.csproj (Microsoft.Build.Utilities.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; using Microsoft.Build.Shared; #nullable disable namespace Microsoft.Build.Utilities { /// <summary> /// This helper base class provides default functionality for loggers that handle events raised by the build engine. This /// class can only be instantiated in a derived form. /// </summary> public abstract class Logger : ILogger { /// <summary> /// Gets or sets the level of detail to show in the event log. /// </summary> /// <value>The verbosity level.</value> public virtual LoggerVerbosity Verbosity { get; set; } /// <summary> /// Gets or sets the user-specified parameters to the logger. Derived class can ignore if it doesn't take parameters. /// </summary> /// <value>The parameter string (can be null).</value> public virtual string Parameters { get; set; } /// <summary> /// Must be implemented by derived class to subscribe to build events. /// </summary> /// <param name="eventSource">The available events that a logger can subscribe to.</param> public abstract void Initialize(IEventSource eventSource); /// <summary> /// Derived class should override if it needs to release any resources. /// </summary> public virtual void Shutdown() { // do nothing } /// <summary> /// Generates a message in the default format from a BuildErrorEventArgs object. /// </summary> /// <param name="args">Error event arguments</param> /// <returns>Error message in canonical format</returns> public virtual string FormatErrorEvent(BuildErrorEventArgs args) => EventArgsFormatting.FormatEventMessage(args); /// <summary> /// Generates a message in the default format from a BuildWarningEventArgs object. /// </summary> /// <param name="args">Warning event arguments</param> /// <returns>Warning message in canonical format</returns> public virtual string FormatWarningEvent(BuildWarningEventArgs args) => EventArgsFormatting.FormatEventMessage(args); /// <summary> /// Determines whether the current verbosity setting is at least the value /// passed in. /// </summary> /// <param name="checkVerbosity"></param> /// <returns></returns> public bool IsVerbosityAtLeast(LoggerVerbosity checkVerbosity) => Verbosity >= checkVerbosity; } }