mirror of
https://github.com/C9Glax/tranga.git
synced 2025-06-23 11:34:16 +02:00
Created Logger
This commit is contained in:
42
Logging/MemoryLogger.cs
Normal file
42
Logging/MemoryLogger.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using System.Text;
|
||||
|
||||
namespace Logging;
|
||||
|
||||
public class MemoryLogger : LoggerBase
|
||||
{
|
||||
private SortedList<DateTime, LogMessage> logMessages = new();
|
||||
|
||||
public MemoryLogger(TextWriter? stdOut, Encoding? encoding = null) : base(stdOut, encoding)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void Write(LogMessage value)
|
||||
{
|
||||
logMessages.Add(value.logTime, value);
|
||||
}
|
||||
|
||||
public string[] GetLogMessage()
|
||||
{
|
||||
string[] ret = new string[logMessages.Count];
|
||||
for (int logMessageIndex = 0; logMessageIndex < ret.Length; logMessageIndex++)
|
||||
{
|
||||
DateTime logTime = logMessages.GetValueAtIndex(logMessageIndex).logTime;
|
||||
string dateTimeString = $"{logTime.ToShortDateString()} {logTime.ToShortTimeString()}";
|
||||
string callerString = logMessages.GetValueAtIndex(logMessageIndex).caller.ToString();
|
||||
string value = $"[{dateTimeString}] {callerString} | {logMessages.GetValueAtIndex(logMessageIndex).value}";
|
||||
ret[logMessageIndex] = value;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public string[] Tail(uint length)
|
||||
{
|
||||
string[] ret = new string[length];
|
||||
for (int logMessageIndex = logMessages.Count - 1; logMessageIndex > logMessageIndex - length; logMessageIndex--)
|
||||
ret[logMessageIndex] = logMessages.GetValueAtIndex(logMessageIndex).ToString();
|
||||
|
||||
return ret.Reverse().ToArray();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user