mirror of
https://github.com/hmaxnl/DotBased.git
synced 2025-04-05 05:51:27 +02:00
97 lines
2.5 KiB
C#
97 lines
2.5 KiB
C#
namespace DotBased.Logging;
|
|
|
|
public class Logger : ILogger
|
|
{
|
|
public Logger(string identifier, CallingSource source, ref Action<LogCapsule> logProcessorHandler)
|
|
{
|
|
Identifier = identifier;
|
|
Source = source;
|
|
_processLog = logProcessorHandler;
|
|
}
|
|
|
|
public string Identifier { get; }
|
|
public CallingSource Source { get; }
|
|
|
|
private readonly Action<LogCapsule> _processLog;
|
|
|
|
public void Log(LogCapsule capsule)
|
|
{
|
|
_processLog(capsule);
|
|
}
|
|
|
|
public void Trace(string message, params object?[]? parameters)
|
|
{
|
|
Log(new LogCapsule()
|
|
{
|
|
Logger = this,
|
|
Message = message,
|
|
Parameters = parameters,
|
|
Severity = LogSeverity.Trace,
|
|
TimeStamp = DateTime.Now
|
|
});
|
|
}
|
|
|
|
public void Debug(string message, params object?[]? parameters)
|
|
{
|
|
Log(new LogCapsule()
|
|
{
|
|
Logger = this,
|
|
Message = message,
|
|
Parameters = parameters,
|
|
Severity = LogSeverity.Debug,
|
|
TimeStamp = DateTime.Now
|
|
});
|
|
}
|
|
|
|
public void Information(string message, params object?[]? parameters)
|
|
{
|
|
Log(new LogCapsule()
|
|
{
|
|
Logger = this,
|
|
Message = message,
|
|
Parameters = parameters,
|
|
Severity = LogSeverity.Info,
|
|
TimeStamp = DateTime.Now
|
|
});
|
|
}
|
|
|
|
public void Warning(string message, params object?[]? parameters)
|
|
{
|
|
Log(new LogCapsule()
|
|
{
|
|
Logger = this,
|
|
Message = message,
|
|
Parameters = parameters,
|
|
Severity = LogSeverity.Warning,
|
|
TimeStamp = DateTime.Now
|
|
});
|
|
}
|
|
|
|
public 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 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(Identifier, Source.AssemblyFullName);
|
|
} |