CredentialProvider.Microsoft/Logging/MultiLogger.cs (33 lines of code) (raw):
// Copyright (c) Microsoft. All rights reserved.
//
// Licensed under the MIT license.
using System.Collections.Generic;
using NuGet.Common;
namespace NuGetCredentialProvider.Logging
{
internal class MultiLogger : List<ILogger>, ILogger
{
private LogLevel? minLogLevel = null;
public void Log(LogLevel level, bool allowOnConsole, string message)
{
foreach (var logger in this)
{
logger.Log(level, allowOnConsole, message);
}
}
public void SetLogLevel(LogLevel newLogLevel)
{
minLogLevel = newLogLevel;
foreach (var logger in this)
{
logger.SetLogLevel(newLogLevel);
}
}
public new void Add(ILogger logger)
{
if (minLogLevel.HasValue)
{
logger.SetLogLevel(minLogLevel.Value);
}
base.Add(logger);
}
}
}