Skip to content

Commit f59faed

Browse files
committed
Use Microsoft.Bcl.TimeProvider in FileLogger
1 parent 6cdf80f commit f59faed

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

src/Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<ItemGroup>
88
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" />
99
<PackageVersion Include="Microsoft.Bcl.Memory" Version="10.0.5" />
10+
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="10.0.5" />
1011
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.5" />
1112
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="10.0.5" />
1213
<PackageVersion Include="System.Threading.Channels" Version="10.0.5" />

src/TinyLogger/IO/FileRenderer.cs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
using System.Diagnostics;
2-
31
namespace TinyLogger.IO;
42

53
/// <summary>
64
/// Render messages in plain text to a file, optionally with a rolling filename.
75
/// </summary>
8-
public class FileRenderer(Func<string> getFileName, LogFileMode logFileMode)
6+
public class FileRenderer(Func<string> getFileName, LogFileMode logFileMode, TimeProvider timeProvider)
97
: StreamRendererBase
108
{
119
private static readonly TimeSpan FileExistsCheckInterval = TimeSpan.FromSeconds(2);
@@ -17,17 +15,22 @@ public class FileRenderer(Func<string> getFileName, LogFileMode logFileMode)
1715
private long lastFileExistsCheckTick = long.MinValue;
1816

1917
public FileRenderer(string fileName)
20-
: this(() => fileName, LogFileMode.Append)
18+
: this(() => fileName, LogFileMode.Append, TimeProvider.System)
2119
{
2220
}
2321

2422
public FileRenderer(string fileName, LogFileMode logFileMode)
25-
: this(() => fileName, logFileMode)
23+
: this(() => fileName, logFileMode, TimeProvider.System)
2624
{
2725
}
2826

2927
public FileRenderer(Func<string> getFileName)
30-
: this(getFileName, LogFileMode.Append)
28+
: this(getFileName, LogFileMode.Append, TimeProvider.System)
29+
{
30+
}
31+
32+
public FileRenderer(Func<string> getFileName, LogFileMode logFileMode)
33+
: this(getFileName, logFileMode, TimeProvider.System)
3134
{
3235
}
3336

@@ -78,7 +81,7 @@ protected override async Task<StreamWriter> GetStreamWriterAsync()
7881
{
7982
streamWriter = new StreamWriter(LogFile.OpenFile(fileName, logFileMode));
8083

81-
lastFileExistsCheckTick = Stopwatch.GetTimestamp();
84+
lastFileExistsCheckTick = timeProvider.GetTimestamp();
8285

8386
TrySetupFileWatcher(fileName);
8487
}
@@ -88,13 +91,8 @@ protected override async Task<StreamWriter> GetStreamWriterAsync()
8891

8992
private bool IsFileExistsCheckDue()
9093
{
91-
var now = Stopwatch.GetTimestamp();
92-
#if NET
93-
var elapsedTime = Stopwatch.GetElapsedTime(lastFileExistsCheckTick, now);
94-
#else
95-
var elapsedTicks = now - lastFileExistsCheckTick;
96-
var elapsedTime = TimeSpan.FromTicks((long)(elapsedTicks * (double)TimeSpan.TicksPerSecond / Stopwatch.Frequency));
97-
#endif
94+
var now = timeProvider.GetTimestamp();
95+
var elapsedTime = timeProvider.GetElapsedTime(lastFileExistsCheckTick, now);
9896

9997
if (elapsedTime > FileExistsCheckInterval)
10098
{

src/TinyLogger/TinyLogger.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19+
<PackageReference Include="Microsoft.Bcl.TimeProvider" />
1920
<PackageReference Include="Microsoft.Extensions.Logging" />
2021
<PackageReference Include="Microsoft.Extensions.ObjectPool" />
2122
</ItemGroup>

0 commit comments

Comments
 (0)