| File: Installers\NuGet\NuGetLogger.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Edge\Microsoft.TemplateEngine.Edge.csproj (Microsoft.TemplateEngine.Edge) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Extensions.Logging; using NuGet.Common; using INuGetLogger = global::NuGet.Common.ILogger; using NuGetLogLevel = global::NuGet.Common.LogLevel; namespace Microsoft.TemplateEngine.Edge.Installers.NuGet { /// <summary> /// Default logger to be used with NuGet API. It forwards all the messages to different methods of ITemplateEngineHost depending on the log level. /// </summary> internal class NuGetLogger : INuGetLogger { private readonly Microsoft.Extensions.Logging.ILogger _baseLogger; internal NuGetLogger(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { _baseLogger = loggerFactory.CreateLogger("NuGetLogger") ?? throw new System.ArgumentNullException(nameof(loggerFactory)); } public void Log(NuGetLogLevel level, string data) { switch (level) { case NuGetLogLevel.Debug: LogDebug(data); break; case NuGetLogLevel.Error: LogError(data); break; case NuGetLogLevel.Information: LogInformation(data); break; case NuGetLogLevel.Minimal: LogMinimal(data); break; case NuGetLogLevel.Verbose: LogVerbose(data); break; case NuGetLogLevel.Warning: LogWarning(data); break; } } public void Log(ILogMessage message) { Log(message.Level, message.Message); } public Task LogAsync(NuGetLogLevel level, string data) { Log(level, data); return Task.FromResult(0); } public Task LogAsync(ILogMessage message) { Log(message); return Task.FromResult(0); } public void LogDebug(string data) { _baseLogger.LogDebug(data); } public void LogError(string data) { _baseLogger.LogError(data); } public void LogInformation(string data) { //TODO: NuGet is putting too much logs to info level, check if we want this data _baseLogger.LogDebug(data); } public void LogInformationSummary(string data) { _baseLogger.LogInformation(data); } public void LogMinimal(string data) { _baseLogger.LogInformation(data); } public void LogVerbose(string data) { _baseLogger.LogDebug(data); } public void LogWarning(string data) { _baseLogger.LogWarning(data); } } }