Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Utils/Logger/Handlers/BaseLogHandler.cs
T
2026-02-06 22:41:13 +01:00

40 lines
1.2 KiB
C#

namespace SPTarkov.Server.Core.Utils.Logger.Handlers;
public abstract class BaseLogHandler : ILogHandler
{
public abstract LoggerType LoggerType { get; }
public abstract void Log(SptLogMessage message, BaseSptLoggerReference reference);
protected string FormatMessage(string processedMessage, SptLogMessage message, BaseSptLoggerReference reference)
{
var format = reference.GetCompiledFormat();
var formattedMessage = string.Format(
null,
format,
message.LogTime.ToString("yyyy-MM-dd"),
message.LogTime.ToString("HH:mm:ss.fff"),
processedMessage,
GetLoggerShortName(message.Logger),
message.Logger,
message.threadId,
message.threadName,
message.LogLevel.ToString()
);
if (message.Exception != null)
{
return string.Concat(formattedMessage, "\n", message.Exception.Message, "\n", message.Exception.StackTrace);
}
return formattedMessage;
}
protected string GetLoggerShortName(string logger)
{
var lastDotIndex = logger.AsSpan().LastIndexOf('.');
return lastDotIndex >= 0 ? logger.Substring(lastDotIndex + 1) : logger;
}
}