29 lines
1.1 KiB
C#
29 lines
1.1 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 formattedMessage = reference.Format.Replace("%date%", message.LogTime.ToString("yyyy-MM-dd"))
|
|
.Replace("%time%", message.LogTime.ToString("HH:mm:ss.fff"))
|
|
.Replace("%message%", processedMessage)
|
|
.Replace("%loggerShort%", message.Logger.Split('.').Last())
|
|
.Replace("%logger%", message.Logger)
|
|
.Replace("%tid%", message.threadId.ToString())
|
|
.Replace("%tname%", message.threadName)
|
|
.Replace("%level%", Enum.GetName(message.LogLevel));
|
|
if (message.Exception != null)
|
|
{
|
|
formattedMessage += $"\n{message.Exception.Message}\n{message.Exception.StackTrace}";
|
|
}
|
|
return formattedMessage;
|
|
}
|
|
}
|