Seal + Docs

This commit is contained in:
Mira 2023-06-08 03:27:52 +02:00
parent 332b6172ae
commit 7c1ff06fa5
Signed by untrusted user who does not match committer: Xorog
GPG key ID: 983798ED9C3E7C36
3 changed files with 47 additions and 22 deletions

View file

@ -2,11 +2,32 @@
public class LogEntry public class LogEntry
{ {
internal LogEntry() { }
internal string RawMessage { get; set; } internal string RawMessage { get; set; }
public DateTime TimeOfEvent { get; set; } /// <summary>
public CustomLogLevel LogLevel { get; set; } /// The time of the event.
public string Message { get; set; } /// </summary>
public object[] Args { get; set; } public DateTime TimeOfEvent { get; internal set; }
public Exception? Exception { get; set; }
/// <summary>
/// The severity of the event.
/// </summary>
public CustomLogLevel LogLevel { get; internal set; }
/// <summary>
/// The message describing the event.
/// </summary>
public string Message { get; internal set; }
/// <summary>
/// Any objects involved in creating the event message.
/// </summary>
public object[] Args { get; internal set; } = Array.Empty<object>();
/// <summary>
/// The exception that's been caused.
/// </summary>
public Exception? Exception { get; internal set; }
} }

View file

@ -3,16 +3,17 @@ using Xorog.Logger.EventArgs;
namespace Xorog.Logger; namespace Xorog.Logger;
#pragma warning disable IDE1006 // Naming Styles public sealed class LoggerClient : ILogger
public class LoggerClient : ILogger
{ {
internal LoggerClient() { } internal LoggerClient() { }
public LoggerProvider _provider { get; internal set; } /// <summary>
/// The <see cref="ILoggerProvider"/>.
/// </summary>
public LoggerProvider Provider { get; internal set; }
private bool loggerStarted = false; private bool LoggerStarted = false;
private CustomLogLevel maxLogLevel = CustomLogLevel.Debug; private CustomLogLevel MaxLogLevel = CustomLogLevel.Debug;
private string FileName = ""; private string FileName = "";
private FileStream OpenedFile { get; set; } private FileStream OpenedFile { get; set; }
@ -23,6 +24,9 @@ public class LoggerClient : ILogger
private Task RunningLogger = null; private Task RunningLogger = null;
/// <summary>
/// Fired when a log message has been sent.
/// </summary>
public event EventHandler<LogMessageEventArgs> LogRaised; public event EventHandler<LogMessageEventArgs> LogRaised;
@ -43,9 +47,9 @@ public class LoggerClient : ILogger
filePath = filePath.Replace("\\", "/"); filePath = filePath.Replace("\\", "/");
var handler = new LoggerClient(); var handler = new LoggerClient();
handler._provider = new(handler); handler.Provider = new(handler);
if (handler.loggerStarted) if (handler.LoggerStarted)
throw new Exception($"The logger is already started"); throw new Exception($"The logger is already started");
if (filePath is not "") if (filePath is not "")
@ -62,8 +66,8 @@ public class LoggerClient : ILogger
handler.OpenedFile = File.Open(handler.FileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.Read); handler.OpenedFile = File.Open(handler.FileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.Read);
} }
handler.loggerStarted = true; handler.LoggerStarted = true;
handler.maxLogLevel = level; handler.MaxLogLevel = level;
if (cleanUpBefore != new DateTime()) if (cleanUpBefore != new DateTime())
{ {
@ -90,7 +94,7 @@ public class LoggerClient : ILogger
handler.RunningLogger = Task.Run(async () => handler.RunningLogger = Task.Run(async () =>
{ {
while (handler.loggerStarted) while (handler.LoggerStarted)
{ {
try try
{ {
@ -209,7 +213,7 @@ public class LoggerClient : ILogger
attemptedParsing = false; attemptedParsing = false;
} }
if (handler.maxLogLevel >= currentLog.LogLevel) if (handler.MaxLogLevel >= currentLog.LogLevel)
{ {
Console.ResetColor(); Console.Write($"[{currentLog.TimeOfEvent:dd.MM.yyyy HH:mm:ss:fff}] "); Console.ResetColor(); Console.Write($"[{currentLog.TimeOfEvent:dd.MM.yyyy HH:mm:ss:fff}] ");
Console.ForegroundColor = LogLevelColor; Console.BackgroundColor = BackgroundColor; Console.Write($"[{LogLevelText}]"); Console.ResetColor(); Console.Write(" "); Console.ForegroundColor = LogLevelColor; Console.BackgroundColor = BackgroundColor; Console.Write($"[{LogLevelText}]"); Console.ResetColor(); Console.Write(" ");
@ -283,8 +287,8 @@ public class LoggerClient : ILogger
/// </summary> /// </summary>
public void StopLogger() public void StopLogger()
{ {
loggerStarted = false; LoggerStarted = false;
maxLogLevel = CustomLogLevel.Debug; MaxLogLevel = CustomLogLevel.Debug;
FileName = ""; FileName = "";
Thread.Sleep(500); Thread.Sleep(500);
@ -324,7 +328,7 @@ public class LoggerClient : ILogger
/// Changes the log level /// Changes the log level
/// </summary> /// </summary>
/// <param name="level">The new log level to apply</param> /// <param name="level">The new log level to apply</param>
public void ChangeLogLevel(CustomLogLevel level) => maxLogLevel = level; public void ChangeLogLevel(CustomLogLevel level) => MaxLogLevel = level;
/// <summary> /// <summary>
/// Log with none log level /// Log with none log level
@ -682,7 +686,7 @@ public class LoggerClient : ILogger
}); });
public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel)
=> loggerStarted; => LoggerStarted;
public IDisposable BeginScope<TState>(TState state) public IDisposable BeginScope<TState>(TState state)
=> default!; => default!;

View file

@ -1,6 +1,6 @@
namespace Xorog.Logger; namespace Xorog.Logger;
public class LoggerProvider : ILoggerProvider public sealed class LoggerProvider : ILoggerProvider
{ {
internal LoggerProvider(LoggerClient logger) internal LoggerProvider(LoggerClient logger)
{ {