You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.8 KiB
61 lines
1.8 KiB
using Microsoft.Extensions.Logging; |
|
|
|
namespace StabilityMatrix.Avalonia.Diagnostics.LogViewer.Core.Extensions; |
|
|
|
public static class LoggerExtensions |
|
{ |
|
public static void Emit( |
|
this ILogger logger, |
|
EventId eventId, |
|
LogLevel logLevel, |
|
string message, |
|
Exception? exception = null, |
|
params object?[] args |
|
) |
|
{ |
|
if (logger is null) |
|
return; |
|
|
|
//if (!logger.IsEnabled(logLevel)) |
|
// return; |
|
|
|
switch (logLevel) |
|
{ |
|
case LogLevel.Trace: |
|
logger.LogTrace(eventId, message, args); |
|
break; |
|
|
|
case LogLevel.Debug: |
|
logger.LogDebug(eventId, message, args); |
|
break; |
|
|
|
case LogLevel.Information: |
|
logger.LogInformation(eventId, message, args); |
|
break; |
|
|
|
case LogLevel.Warning: |
|
logger.LogWarning(eventId, exception, message, args); |
|
break; |
|
|
|
case LogLevel.Error: |
|
logger.LogError(eventId, exception, message, args); |
|
break; |
|
|
|
case LogLevel.Critical: |
|
logger.LogCritical(eventId, exception, message, args); |
|
break; |
|
} |
|
} |
|
|
|
public static void TestPattern(this ILogger logger, EventId eventId) |
|
{ |
|
var exception = new Exception("Test Error Message"); |
|
|
|
logger.Emit(eventId, LogLevel.Trace, "Trace Test Pattern"); |
|
logger.Emit(eventId, LogLevel.Debug, "Debug Test Pattern"); |
|
logger.Emit(eventId, LogLevel.Information, "Information Test Pattern"); |
|
logger.Emit(eventId, LogLevel.Warning, "Warning Test Pattern"); |
|
logger.Emit(eventId, LogLevel.Error, "Error Test Pattern", exception); |
|
logger.Emit(eventId, LogLevel.Critical, "Critical Test Pattern", exception); |
|
} |
|
}
|
|
|