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)
|
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)
|
if (_cachedUntil != CachedUntilLifetime.None)
|
||||||
{
|
{
|
||||||
var periodTicks = _cachedUntil == CachedUntilLifetime.DayChange ? TimeSpan.TicksPerDay : TimeSpan.TicksPerHour;
|
var periodTicks = _cachedUntil == CachedUntilLifetime.DayChange ? TimeSpan.TicksPerDay : TimeSpan.TicksPerHour;
|
||||||
|
|||||||
@@ -154,11 +154,13 @@ namespace NLog.UnitTests.LayoutRenderers.Wrappers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData("HourChange")]
|
[InlineData("cachedUntil=HourChange")]
|
||||||
[InlineData("DayChange")]
|
[InlineData("cachedUntil=DayChange")]
|
||||||
public void CachedUntilLastPeriodTest(string cachedUntil)
|
[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 s1 = l.Render(new LogEventInfo() { TimeStamp = DateTime.MaxValue.AddMinutes(-30) });
|
||||||
var s2 = l.Render(new LogEventInfo() { TimeStamp = DateTime.MaxValue });
|
var s2 = l.Render(new LogEventInfo() { TimeStamp = DateTime.MaxValue });
|
||||||
Assert.NotEmpty(s1);
|
Assert.NotEmpty(s1);
|
||||||
|
|||||||
Reference in new issue
Block a user