Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/LogExpert.Core/Classes/Log/RolloverFilenameBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,10 @@ private string EscapeNonvarRegions (string formatString)
}
}

_ = result.Append(Regex.Escape(segment.ToString()));
fmt = result.ToString().Replace('\xFFFD', '*');
return fmt;
}

#endregion
}
}
10 changes: 7 additions & 3 deletions src/LogExpert.Resources/Resources.de.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1680,12 +1680,16 @@ Ein ausgewähltes Tool erscheint in der Iconbar. Alle anderen verfügbaren Tools
<value>Muster syntax:

* = alle Zeichen (wildcard)
$D(&amp;lt;date&amp;gt;) = Datumsmuster
$D(&lt;date&gt;) = Datumsmuster
$I = Dateiindexnummer
$J = Dateiindexnummer, versteckt wenn 09
$J(&amp;lt;prefix&amp;gt;) = Wie $J, jedoch wird ein &amp;lt;prefix&amp;gt; hinzugefügt when es nicht 0 ist
$J(&lt;prefix&gt;) = Wie $J, jedoch wird ein &lt;prefix&gt; hinzugefügt when es nicht 0 ist

&amp;lt;date&amp;gt;:
Beispiele:
*$J(.) → app.log, app.log.1, app.log.2
*$J(.).log → app.log, app.1.log, app.2.log

&lt;date&gt;:
DD = Tag
MM = Monat
YY[YY] = Jahr
Expand Down
10 changes: 7 additions & 3 deletions src/LogExpert.Resources/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1743,12 +1743,16 @@ Checked tools will appear in the icon bar. All other tools are available in the
<value>Pattern syntax:

* = any characters (wildcard)
$D(&amp;lt;date&amp;gt;) = Date pattern
$D(&lt;date&gt;) = Date pattern
$I = File index number
$J = File index number, hidden when zero
$J(&amp;lt;prefix&amp;gt;) = Like $J, but adding &amp;lt;prefix&amp;gt; when non-zero
$J(&lt;prefix&gt;) = Like $J, but adding &lt;prefix&gt; when non-zero

&amp;lt;date&amp;gt;:
Examples:
*$J(.) → app.log, app.log.1, app.log.2
*$J(.).log → app.log, app.1.log, app.2.log

&lt;date&gt;:
DD = day
MM = month
YY[YY] = year
Expand Down
4 changes: 4 additions & 0 deletions src/LogExpert.Resources/Resources.zh-CN.resx
Original file line number Diff line number Diff line change
Expand Up @@ -1554,6 +1554,10 @@ $I = 文件索引编号
$J = 文件索引编号,为零时隐藏
$J(&lt;前缀&gt;) = 类似 $J,但在非零时添加 &lt;前缀&gt;

示例:
*$J(.) → app.log, app.log.1, app.log.2
*$J(.).log → app.log, app.1.log, app.2.log

&lt;日期&gt;:
DD = 日
MM = 月
Expand Down
6 changes: 6 additions & 0 deletions src/LogExpert.Tests/LogExpert.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@
<Content Include="TestData\app.log.1">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\app.1.log">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\app.2.log">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Update="TestData\organizations-1000.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand Down
4 changes: 3 additions & 1 deletion src/LogExpert.Tests/RollingNameTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public void TestFilename1(string expectedResult, string formatString)
[TestCase("engine.log", "engine1.log","engine$J.log")]
[TestCase("engine1.log", "engine2.log","engine$J.log")]
[TestCase("engine.log", "engine.log.1","*$J(.)")]
[TestCase("engine.log", "engine.1.log", "*$J(.).log")]
[TestCase("engine_2010-06-12.log", "engine_2010-06-12.log.1", "*$D(yyyy-MM-dd).log$J(.)")]
public void TestFilenameAnd1(string fileName, string expectedResult, string formatString)
{
Expand All @@ -45,6 +46,7 @@ public void TestFilenameAnd1(string fileName, string expectedResult, string form
[Test]
[TestCase("engine.log", "engine.log.2","*$J(.)")]
[TestCase("engine.log", "engine.log.2","*.log$J(.)")]
[TestCase("engine.log", "engine.2.log", "*$J(.).log")]
public void TestFilenameAnd2(string fileName, string expectedResult, string formatString)
{
RolloverFilenameBuilder fnb = new(formatString);
Expand All @@ -65,4 +67,4 @@ public void TestFilenameMinus1(string fileName, string expectedResult, string fo
var name = fnb.BuildFileName();
Assert.That(name, Is.EqualTo("engine.log"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ public void SetUp ()

File.Copy(Path.Combine(_testDataDirectory, "app.log"), _logFile);
File.Copy(Path.Combine(_testDataDirectory, "app.log.1"), _logFile + ".1");
File.Copy(Path.Combine(_testDataDirectory, "app.1.log"), Path.Combine(_testDirectory, "app.1.log"));
File.Copy(Path.Combine(_testDataDirectory, "app.2.log"), Path.Combine(_testDirectory, "app.2.log"));

_ = PluginRegistry.PluginRegistry.Create(_testDirectory, 500);
}
Expand Down Expand Up @@ -68,6 +70,22 @@ public void SingleFileCtor_MultiFileTrue_ExpandsRollover ()
});
}

[Test]
public void SingleFileCtor_MultiFileTrue_LoadsIndexBeforeExtension ()
{
var options = new MultiFileOptions { FormatPattern = "*$J(.).log" };
using var reader = CreateSingleFileReader(multiFile: true, options);

reader.ReadFiles();

Assert.Multiple(() =>
{
Assert.That(reader.IsMultiFile, Is.True);
Assert.That(reader.GetLogFileInfoList().Select(file => Path.GetFileName(file.FullName)),
Is.EqualTo(new[] { "app.2.log", "app.1.log", "app.log" }));
});
}

[Test]
public void MultiFileCtor_AlwaysMultiFile ()
{
Expand All @@ -91,15 +109,15 @@ public void MultiFileCtor_AlwaysMultiFile ()
});
}

private LogfileReader CreateSingleFileReader (bool multiFile)
private LogfileReader CreateSingleFileReader (bool multiFile, MultiFileOptions? options = null)
{
return new LogfileReader(
_logFile,
new EncodingOptions { Encoding = Encoding.UTF8 },
multiFile,
bufferCount: 40,
linesPerBuffer: 50,
new MultiFileOptions(),
options ?? new MultiFileOptions(),
ReaderType.System,
PluginRegistry.PluginRegistry.Instance,
maximumLineLength: 500,
Expand Down
1 change: 1 addition & 0 deletions src/LogExpert.Tests/TestData/app.1.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
app.1.log
1 change: 1 addition & 0 deletions src/LogExpert.Tests/TestData/app.2.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
app.2.log

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions src/LogExpert.UI/Dialogs/MultiFileMaskDialog.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading