| File: NugetPackageDownloader\NuGetConsoleLogger.cs | Web Access |
| Project: src\sdk\src\Cli\dotnet\dotnet.csproj (dotnet) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable disable using Microsoft.DotNet.Cli.Utils; using NuGet.Common; namespace Microsoft.DotNet.Cli.NuGetPackageDownloader; internal class NuGetConsoleLogger : ILogger { public void Log(LogLevel level, string data) { switch (level) { case LogLevel.Debug: LogDebug(data); break; case LogLevel.Error: LogError(data); break; case LogLevel.Information: LogInformation(data); break; case LogLevel.Minimal: LogMinimal(data); break; case LogLevel.Verbose: LogVerbose(data); break; case LogLevel.Warning: LogWarning(data); break; } } public void Log(ILogMessage message) { Log(message.Level, message.Message); } public Task LogAsync(LogLevel level, string data) { Log(level, data); return Task.CompletedTask; } public Task LogAsync(ILogMessage message) { Log(message); return Task.CompletedTask; } public void LogDebug(string data) { Reporter.Verbose.WriteLine($"[NuGet Manager] [DEBUG] {data}"); } public void LogError(string data) { Reporter.Error.WriteLine($"[NuGet Manager] [Error] {data}"); } public void LogInformation(string data) { Reporter.Output.WriteLine($"[NuGet Manager] [Info] {data}"); } public void LogInformationSummary(string data) { Reporter.Output.WriteLine($"[NuGet Manager] [Info Summary] {data}"); } public void LogMinimal(string data) { Reporter.Output.WriteLine($"[NuGet Manager] {data}"); } public void LogVerbose(string data) { Reporter.Verbose.WriteLine($"[NuGet Manager] [Verbose] {data}"); } public void LogWarning(string data) { Reporter.Error.WriteLine($"[NuGet Manager] [Warning] {data}"); } private static LogLevel MappingVerbosityToNugetLogLevel(VerbosityOptions verbosity) { return verbosity switch { VerbosityOptions.diagnostic or VerbosityOptions.diag => LogLevel.Debug, VerbosityOptions.minimal or VerbosityOptions.m => LogLevel.Minimal, VerbosityOptions.normal or VerbosityOptions.n => LogLevel.Information, VerbosityOptions.detailed or VerbosityOptions.d => LogLevel.Verbose, _ => LogLevel.Information }; } }