CachedUntil - Clamp CachedSeconds expiry to DateTime.MaxValue
This commit is contained in:
1 parent
d490e07ea2
commit
9537db7a71
2 files changed
+12
-5
No files matched your search
@@ -208,7 +208,12 @@ namespace NLog.LayoutRenderers.Wrappers
|
||||
|
||||
private DateTime? ResolveCachedValueExpires(DateTime timeStamp)
|
||||
{
|
||||
DateTime? expires = _cachedValueTimeout.HasValue ? timeStamp + _cachedValueTimeout.Value : null;
|
||||
DateTime? expires = null;
|
||||
if (_cachedValueTimeout.HasValue)
|
||||
{
|
||||
var timeoutTicks = Math.Min(_cachedValueTimeout.Value.Ticks, DateTime.MaxValue.Ticks - timeStamp.Ticks);
|
||||
expires = timeStamp.AddTicks(timeoutTicks);
|
||||
}
|
||||
if (_cachedUntil != CachedUntilLifetime.None)
|
||||
{
|
||||
var periodTicks = _cachedUntil == CachedUntilLifetime.DayChange ? TimeSpan.TicksPerDay : TimeSpan.TicksPerHour;
|
||||
|
||||
@@ -154,11 +154,13 @@ namespace NLog.UnitTests.LayoutRenderers.Wrappers
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("HourChange")]
|
||||
[InlineData("DayChange")]
|
||||
public void CachedUntilLastPeriodTest(string cachedUntil)
|
||||
[InlineData("cachedUntil=HourChange")]
|
||||
[InlineData("cachedUntil=DayChange")]
|
||||
[InlineData("cachedSeconds=3600")]
|
||||
[InlineData("cachedUntil=DayChange:cachedSeconds=3600")]
|
||||
public void CachedLastPeriodTest(string cachedOptions)
|
||||
{
|
||||
SimpleLayout l = "${guid:cachedUntil=" + cachedUntil + "}";
|
||||
SimpleLayout l = "${guid:" + cachedOptions + "}";
|
||||
var s1 = l.Render(new LogEventInfo() { TimeStamp = DateTime.MaxValue.AddMinutes(-30) });
|
||||
var s2 = l.Render(new LogEventInfo() { TimeStamp = DateTime.MaxValue });
|
||||
Assert.NotEmpty(s1);
|
||||
|
||||
Reference in new issue
Block a user