diff --git a/src/NLog/LayoutRenderers/Wrappers/CachedLayoutRendererWrapper.cs b/src/NLog/LayoutRenderers/Wrappers/CachedLayoutRendererWrapper.cs index 5b20168..b2ee706 100644 --- a/src/NLog/LayoutRenderers/Wrappers/CachedLayoutRendererWrapper.cs +++ b/src/NLog/LayoutRenderers/Wrappers/CachedLayoutRendererWrapper.cs @@ -88,7 +88,6 @@ namespace NLog.LayoutRenderers.Wrappers private string? _renderedCacheKey; private DateTime _cachedValueExpires; private TimeSpan? _cachedValueTimeout; - private DateTime _cachedValuePeriodStart; private CachedUntilOption _cachedUntil; /// @@ -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; } diff --git a/tests/NLog.UnitTests/LayoutRenderers/Wrappers/CachedTests.cs b/tests/NLog.UnitTests/LayoutRenderers/Wrappers/CachedTests.cs index 66a7661..d8ebf17 100644 --- a/tests/NLog.UnitTests/LayoutRenderers/Wrappers/CachedTests.cs +++ b/tests/NLog.UnitTests/LayoutRenderers/Wrappers/CachedTests.cs @@ -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")]