public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) => true; // Verbosity is handled by the inner logger /// <inheritdoc /> public void Log <TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { BuildXL.Ipc.Interfaces.LogLevel innerLoggerLevel = BuildXL.Ipc.Interfaces.LogLevel.Verbose; switch (logLevel) { case Microsoft.Extensions.Logging.LogLevel.Information: innerLoggerLevel = BuildXL.Ipc.Interfaces.LogLevel.Info; break; case Microsoft.Extensions.Logging.LogLevel.Warning: innerLoggerLevel = BuildXL.Ipc.Interfaces.LogLevel.Warning; break; case Microsoft.Extensions.Logging.LogLevel.Error: case Microsoft.Extensions.Logging.LogLevel.Critical: innerLoggerLevel = BuildXL.Ipc.Interfaces.LogLevel.Error; break; case Microsoft.Extensions.Logging.LogLevel.None: case Microsoft.Extensions.Logging.LogLevel.Trace: case Microsoft.Extensions.Logging.LogLevel.Debug: // Do not log return; } m_innerLogger.Log(innerLoggerLevel, $"[SBOM API] {formatter(state, exception)}"); }
/// <nodoc /> public static void Warning(this IIpcLogger logger, string format, params object[] args) => logger?.Log(LogLevel.Warning, format, args);
/// <nodoc /> public static void Error(this IIpcLogger logger, string format, params object[] args) => logger?.Log(LogLevel.Error, format, args);
/// <nodoc /> public static void Verbose(this IIpcLogger logger, string format, params object[] args) => logger?.Log(LogLevel.Verbose, format, args);