Files
DotBased/DotBased/Logging/Logger.cs
2024-05-06 00:29:23 +02:00

100 lines
2.8 KiB
C#
Executable File

namespace DotBased.Logging;
/// <summary>
/// Main logger, this class is the default logger that the <see cref="LogService.RegisterLogger"/> function will return.
/// </summary>
public class Logger(CallerInformation caller, ref Action<LogCapsule> logProcessorHandler) : LoggerBase(caller, ref logProcessorHandler)
{
public void Log(LogCapsule capsule)
{
ProcessLog(capsule);
}
public override void Verbose(string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Verbose,
TimeStamp = DateTime.Now
});
}
public override void Trace(string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Trace,
TimeStamp = DateTime.Now
});
}
public override void Debug(string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Debug,
TimeStamp = DateTime.Now
});
}
public override void Information(string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Info,
TimeStamp = DateTime.Now
});
}
public override void Warning(string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Warning,
TimeStamp = DateTime.Now
});
}
public override void Error(Exception exception, string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Error,
TimeStamp = DateTime.Now,
Exception = exception
});
}
public override void Fatal(Exception exception, string message, params object?[]? parameters)
{
Log(new LogCapsule()
{
Logger = this,
Message = message,
Parameters = parameters,
Severity = LogSeverity.Fatal,
TimeStamp = DateTime.Now,
Exception = exception
});
}
public override int GetHashCode() => HashCode.Combine(Caller.Source, Caller.AssemblyFullname);
}