2024-01-29 09:29:16 +08:00
|
|
|
|
using System.Text;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
2024-02-02 17:14:41 +08:00
|
|
|
|
namespace MesETL.App.Services.Loggers;
|
2024-01-29 09:29:16 +08:00
|
|
|
|
|
|
|
|
|
public class LoggerTaskMonitorLogger : ITaskMonitorLogger
|
|
|
|
|
{
|
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
|
|
|
|
|
public LoggerTaskMonitorLogger(ILogger<LoggerTaskMonitorLogger> logger)
|
|
|
|
|
{
|
|
|
|
|
_logger = logger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void LogStatus(string name, IReadOnlyDictionary<string, string> properties, ITaskMonitorLogger.LogLevel logLevel)
|
|
|
|
|
{
|
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
|
sb.Append($"{name}: {{");
|
|
|
|
|
sb.AppendJoin(',', properties.Select((pair, i) => $" {pair.Key}: {pair.Value}"));
|
2024-12-10 14:03:09 +08:00
|
|
|
|
sb.Append([' ', '}']);
|
2024-01-29 09:29:16 +08:00
|
|
|
|
// var args = new List<string> { name };
|
|
|
|
|
// properties.Aggregate(args, (args, pair) =>
|
|
|
|
|
// {
|
|
|
|
|
// args.Add(pair.Key);
|
|
|
|
|
// args.Add(pair.Value);
|
|
|
|
|
// return args;
|
|
|
|
|
// });
|
|
|
|
|
switch (logLevel)
|
|
|
|
|
{
|
|
|
|
|
case ITaskMonitorLogger.LogLevel.Info:
|
|
|
|
|
_logger.LogInformation("{message}", sb.ToString());
|
|
|
|
|
break;
|
|
|
|
|
case ITaskMonitorLogger.LogLevel.Progress:
|
|
|
|
|
case ITaskMonitorLogger.LogLevel.Debug:
|
|
|
|
|
_logger.LogDebug("{message}", sb.ToString());
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|