- Hinzufügen der Methoden `LogMessageList` und `LogServiceMessage` für verbessertes Nachrichten-Logging. - Korrektur der Schreibweise des Parameters `separator`. - Dokumentation der Methoden für bessere Klarheit.
41 lines
2.3 KiB
C#
41 lines
2.3 KiB
C#
using DigitalData.Core.Contracts.Application;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace DigitalData.Core.Application
|
|
{
|
|
/// <summary>
|
|
/// Provides extension methods for ILogger to handle logging of message collections and service messages more effectively.
|
|
/// </summary>
|
|
public static class LoggerExtensions
|
|
{
|
|
/// <summary>
|
|
/// Logs a list of messages at the specified log level.
|
|
/// </summary>
|
|
/// <param name="logger">The extended ILogger instance.</param>
|
|
/// <param name="logLevel">The severity level of the log entry.</param>
|
|
/// <param name="messages">The collection of messages to log.</param>
|
|
/// <param name="separator">The separator used to join messages. Default is newline.</param>
|
|
/// <param name="args">Additional arguments used for formatting the log message.</param>
|
|
public static void LogMessageList(this ILogger logger, LogLevel logLevel, IEnumerable<string> messages, string separator = "\n", params object?[] args)
|
|
{
|
|
if (messages.Any())
|
|
logger.Log(logLevel: logLevel, message: string.Join(separator, messages), args);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Logs all messages from a service message instance, categorized by message type to appropriate log levels.
|
|
/// </summary>
|
|
/// <param name="logger">The extended ILogger instance.</param>
|
|
/// <param name="serviceMessage">The service message instance containing categorized messages.</param>
|
|
/// <param name="separator">The separator used to join messages within each category. Default is newline.</param>
|
|
public static void LogServiceMessage(this ILogger logger, IServiceMessage serviceMessage, string separator = "\n")
|
|
{
|
|
logger.LogMessageList(LogLevel.Trace, serviceMessage.TraceMessages, separator);
|
|
logger.LogMessageList(LogLevel.Debug, serviceMessage.DebugMessages, separator);
|
|
logger.LogMessageList(LogLevel.Information, serviceMessage.InformationMessages, separator);
|
|
logger.LogMessageList(LogLevel.Warning, serviceMessage.WarningMessages, separator);
|
|
logger.LogMessageList(LogLevel.Error, serviceMessage.ErrorMessages, separator);
|
|
logger.LogMessageList(LogLevel.Critical, serviceMessage.CriticalMessages, separator);
|
|
}
|
|
}
|
|
} |