DebuggerDisplayFormatting
using System;
using System.Runtime.CompilerServices;
namespace Microsoft.Extensions.Logging
{
[NullableContext(1)]
[Nullable(0)]
internal static class DebuggerDisplayFormatting
{
internal static string DebuggerToString(string name, ILogger logger)
{
LogLevel? value = CalculateEnabledLogLevel(logger);
string text = "Name = \"" + name + "\"";
if (!value.HasValue)
return text + ", Enabled = false";
string str = text;
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1);
defaultInterpolatedStringHandler.AppendLiteral(", MinLevel = ");
defaultInterpolatedStringHandler.AppendFormatted(value);
return str + defaultInterpolatedStringHandler.ToStringAndClear();
}
internal static LogLevel? CalculateEnabledLogLevel(ILogger logger)
{
ReadOnlySpan<LogLevel> readOnlySpan = RuntimeHelpers.CreateSpan<LogLevel>((RuntimeFieldHandle));
LogLevel? result = null;
ReadOnlySpan<LogLevel> readOnlySpan2 = readOnlySpan;
foreach (LogLevel logLevel in readOnlySpan2) {
if (!logger.IsEnabled(logLevel))
break;
result = logLevel;
}
return result;
}
}
}