fix: '{0}{1}' is now parsed correctly
This commit is contained in:
parent
c21f2dae76
commit
1e4bcb07b0
1 changed files with 30 additions and 20 deletions
18
Logger.cs
18
Logger.cs
|
|
@ -104,7 +104,7 @@ public class Logger : ILogger
|
|||
LogLevel.TRACE => ConsoleColor.Gray,
|
||||
LogLevel.DEBUG2 => ConsoleColor.Gray,
|
||||
LogLevel.DEBUG => ConsoleColor.Gray,
|
||||
LogLevel.INFO => ConsoleColor.Green,
|
||||
LogLevel.INFO => ConsoleColor.Cyan,
|
||||
LogLevel.WARN => ConsoleColor.Yellow,
|
||||
LogLevel.ERROR => ConsoleColor.Red,
|
||||
LogLevel.FATAL => ConsoleColor.Black,
|
||||
|
|
@ -124,11 +124,15 @@ public class Logger : ILogger
|
|||
|
||||
int currentArg = 0;
|
||||
bool inTemplate = false;
|
||||
bool attemptedParsing = false;
|
||||
List<StringPart> builder = new();
|
||||
|
||||
while (leftOver.Length > 0)
|
||||
{
|
||||
if (inTemplate && currentLog.Args?.Length >= currentArg)
|
||||
if (inTemplate)
|
||||
{
|
||||
attemptedParsing = true;
|
||||
if (currentLog.Args?.Length >= currentArg)
|
||||
{
|
||||
int endIndex = leftOver.IndexOf('}');
|
||||
|
||||
|
|
@ -149,21 +153,27 @@ public class Logger : ILogger
|
|||
inTemplate = false;
|
||||
|
||||
leftOver = leftOver[(endIndex + 1)..];
|
||||
attemptedParsing = false;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
inTemplate = false;
|
||||
|
||||
int placeholderIndex = leftOver.IndexOf('{');
|
||||
|
||||
if (placeholderIndex != -1 && currentLog.Args?.Length >= currentArg)
|
||||
if (placeholderIndex != -1)
|
||||
inTemplate = true;
|
||||
|
||||
if (placeholderIndex is -1 or 0 || placeholderIndex > leftOver.Length)
|
||||
if (placeholderIndex == -1 || placeholderIndex > leftOver.Length)
|
||||
placeholderIndex = leftOver.Length;
|
||||
|
||||
if (placeholderIndex == 0 && attemptedParsing)
|
||||
placeholderIndex = leftOver.Length;
|
||||
|
||||
builder.Add(new StringPart { String = leftOver[..placeholderIndex] });
|
||||
leftOver = leftOver[placeholderIndex..];
|
||||
attemptedParsing = false;
|
||||
}
|
||||
|
||||
if (handler.maxLogLevel >= currentLog.LogLevel)
|
||||
|
|
|
|||
Reference in a new issue