Skip to content

Commit f7930cc

Browse files
committed
Added support for ILogger without generics
1 parent dd0ebcc commit f7930cc

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/LoggerVisualizer/LoggerDebuggerVisualizerProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ internal class LoggerDebuggerVisualizerProvider : DebuggerVisualizerProvider
1414
{
1515
[System.Diagnostics.CodeAnalysis.SuppressMessage("ConstantExpressionEvaluator", "CEE0027:String not localized", Justification = "")]
1616
public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new(
17+
new VisualizerTargetType("Logger Visualizer", "Microsoft.Extensions.Logging.Logger, Microsoft.Extensions.Logging, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60"),
1718
new VisualizerTargetType("Logger Visualizer", typeof(Logger<>)),
1819
new VisualizerTargetType("Logger Factory Visualizer", typeof(LoggerFactory)))
1920
{

src/LoggerVisualizerSource/LoggerObjectSource.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,14 @@ public override void GetData(object target, Stream outgoingData)
6262

6363
SerializeAsJson(outgoingData, result);
6464
}
65-
else if (target.GetType().IsGenericType && target.GetType().GetGenericTypeDefinition() == typeof(Logger<>))
65+
else if ((target.GetType().IsGenericType && target.GetType().GetGenericTypeDefinition() == typeof(Logger<>))
66+
|| target.GetType().FullName == "Microsoft.Extensions.Logging.Logger")
6667
{
67-
var logger = GetPrivateField(target, "_logger") as ILogger;
68-
if (logger?.GetType().FullName != "Microsoft.Extensions.Logging.Logger") return;
68+
ILogger logger = target.GetType().FullName == "Microsoft.Extensions.Logging.Logger"
69+
? target as ILogger
70+
: GetPrivateField(target, "_logger") as ILogger;
71+
72+
if (logger == null) return;
6973

7074
var loggers = GetPublicProperty(logger, "Loggers") as Array;
7175
var messageLoggers = GetPublicProperty(logger, "MessageLoggers") as Array;

0 commit comments

Comments
 (0)