CachedUntil - Removed _cachedValuePeriodStart, older timestamps behave like with CachedSeconds
This commit is contained in:
1 parent
97f1f71bbe
commit
c9cd6bf57c
2 files changed
+2
-34
No files matched your search
@@ -88,7 +88,6 @@ namespace NLog.LayoutRenderers.Wrappers
|
||||
private string? _renderedCacheKey;
|
||||
private DateTime _cachedValueExpires;
|
||||
private TimeSpan? _cachedValueTimeout;
|
||||
private DateTime _cachedValuePeriodStart;
|
||||
private CachedUntilOption _cachedUntil;
|
||||
|
||||
/// <summary>
|
||||
@@ -204,9 +203,6 @@ namespace NLog.LayoutRenderers.Wrappers
|
||||
if ((_cachedValueTimeout.HasValue || _cachedUntil != CachedUntilOption.None) && logEvent.TimeStamp > _cachedValueExpires)
|
||||
return null;
|
||||
|
||||
if (_cachedUntil != CachedUntilOption.None && logEvent.TimeStamp < _cachedValuePeriodStart)
|
||||
return null;
|
||||
|
||||
return _cachedValue;
|
||||
}
|
||||
|
||||
@@ -216,9 +212,9 @@ namespace NLog.LayoutRenderers.Wrappers
|
||||
if (_cachedUntil != CachedUntilOption.None)
|
||||
{
|
||||
var periodTicks = _cachedUntil == CachedUntilOption.DayChange ? TimeSpan.TicksPerDay : TimeSpan.TicksPerHour;
|
||||
_cachedValuePeriodStart = new DateTime(timeStamp.Ticks - timeStamp.Ticks % periodTicks, timeStamp.Kind);
|
||||
var periodStart = new DateTime(timeStamp.Ticks - timeStamp.Ticks % periodTicks, timeStamp.Kind);
|
||||
// Inclusive end, so the last period ends at DateTime.MaxValue without overflow
|
||||
var periodEnd = _cachedValuePeriodStart.AddTicks(periodTicks - 1);
|
||||
var periodEnd = periodStart.AddTicks(periodTicks - 1);
|
||||
if (periodEnd < expires)
|
||||
expires = periodEnd;
|
||||
}
|
||||
|
||||
@@ -153,34 +153,6 @@ namespace NLog.UnitTests.LayoutRenderers.Wrappers
|
||||
Assert.NotEqual(s2, s3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CachedUntilHourChangeEarlierTimeStampTest()
|
||||
{
|
||||
SimpleLayout l = "${guid:cachedUntil=HourChange}";
|
||||
var timeStamp = new DateTime(2021, 2, 27, 17, 30, 0);
|
||||
var s1 = l.Render(new LogEventInfo() { TimeStamp = timeStamp });
|
||||
var s2 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddMinutes(30) });
|
||||
Assert.NotEqual(s1, s2);
|
||||
var s3 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddMinutes(15) });
|
||||
Assert.NotEqual(s2, s3);
|
||||
var s4 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddMinutes(-30) });
|
||||
Assert.Equal(s3, s4);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CachedUntilDayChangeEarlierTimeStampTest()
|
||||
{
|
||||
SimpleLayout l = "${guid:cachedUntil=DayChange}";
|
||||
var timeStamp = new DateTime(2021, 2, 27, 17, 30, 0);
|
||||
var s1 = l.Render(new LogEventInfo() { TimeStamp = timeStamp });
|
||||
var s2 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddHours(7) });
|
||||
Assert.NotEqual(s1, s2);
|
||||
var s3 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddHours(6) });
|
||||
Assert.NotEqual(s2, s3);
|
||||
var s4 = l.Render(new LogEventInfo() { TimeStamp = timeStamp.AddHours(-17.5) });
|
||||
Assert.Equal(s3, s4);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("HourChange")]
|
||||
[InlineData("DayChange")]
|
||||
|
||||
Reference in new issue
Block a user