Code cleanup

This commit is contained in:
Stone_Red
2026-06-10 00:29:28 +02:00
parent 91e8cbb00a
commit 31e54c1637
11 changed files with 184 additions and 186 deletions
+7 -13
View File
@@ -1,20 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace RemSox.Logging;
namespace RemSox.Logging
public interface ILogger
{
public interface ILogger
{
void Log(string message, LogSeverity severity);
void Log(string message, LogSeverity severity);
void LogInfo(string message);
void LogInfo(string message);
void LogError(string message);
void LogError(string message);
void LogWarning(string message);
void LogWarning(string message);
IEnumerable<LogEntry> GetLogs(int? count = null);
}
IEnumerable<LogEntry> GetLogs(int? count = null);
}
+24 -29
View File
@@ -1,39 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Concurrent;
namespace RemSox.Logging
namespace RemSox.Logging;
public class InMemoryLogger : ILogger
{
public class InMemoryLogger : ILogger
private readonly ConcurrentBag<LogEntry> logs = [];
public void Log(string message, LogSeverity severity)
{
readonly ConcurrentBag<LogEntry> logs = [];
logs.Add(new LogEntry(message, severity, DateTimeOffset.UtcNow));
}
public void Log(string message, LogSeverity severity)
{
logs.Add(new LogEntry(message, severity, DateTimeOffset.UtcNow));
}
public void LogError(string message)
{
Log(message, LogSeverity.Error);
}
public void LogError(string message)
{
Log(message, LogSeverity.Error);
}
public void LogInfo(string message)
{
Log(message, LogSeverity.Info);
}
public void LogInfo(string message)
{
Log(message, LogSeverity.Info);
}
public void LogWarning(string message)
{
Log(message, LogSeverity.Warning);
}
public void LogWarning(string message)
{
Log(message, LogSeverity.Warning);
}
public IEnumerable<LogEntry> GetLogs(int? count = null)
{
IEnumerable<LogEntry> orderedLogs = logs.OrderBy(l => l.Timestamp);
return count.HasValue ? orderedLogs.TakeLast(count.Value) : orderedLogs;
}
public IEnumerable<LogEntry> GetLogs(int? count = null)
{
IEnumerable<LogEntry> orderedLogs = logs.OrderBy(l => l.Timestamp);
return count.HasValue ? orderedLogs.TakeLast(count.Value) : orderedLogs;
}
}
+2 -8
View File
@@ -1,9 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace RemSox.Logging;
namespace RemSox.Logging
{
public record LogEntry(string Message, LogSeverity Severity, DateTimeOffset Timestamp);
}
public record LogEntry(string Message, LogSeverity Severity, DateTimeOffset Timestamp);
+5 -11
View File
@@ -1,14 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace RemSox.Logging;
namespace RemSox.Logging
public enum LogSeverity
{
public enum LogSeverity
{
Info,
Warning,
Error
}
Info,
Warning,
Error
}
+25 -31
View File
@@ -1,38 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace RemSox.Logging;
namespace RemSox.Logging
public class ProxyLogger(IEnumerable<ILogger> loggers) : ILogger
{
public class ProxyLogger(IEnumerable<ILogger> loggers) : ILogger
public void Log(string message, LogSeverity severity)
{
public void Log(string message, LogSeverity severity)
foreach (ILogger logger in loggers)
{
foreach (var logger in loggers)
{
logger.Log(message, severity);
}
}
public void LogError(string message)
{
Log(message, LogSeverity.Error);
}
public void LogInfo(string message)
{
Log(message, LogSeverity.Info);
}
public void LogWarning(string message)
{
Log(message, LogSeverity.Warning);
}
public IEnumerable<LogEntry> GetLogs(int? count = null)
{
return loggers.SelectMany(logger => logger.GetLogs(count / loggers.Count())).OrderBy(entry => entry.Timestamp);
logger.Log(message, severity);
}
}
public void LogError(string message)
{
Log(message, LogSeverity.Error);
}
public void LogInfo(string message)
{
Log(message, LogSeverity.Info);
}
public void LogWarning(string message)
{
Log(message, LogSeverity.Warning);
}
public IEnumerable<LogEntry> GetLogs(int? count = null)
{
return loggers.SelectMany(logger => logger.GetLogs(count / loggers.Count())).OrderBy(entry => entry.Timestamp);
}
}