diff --git a/src/Serilog.Sinks.File/RollingInterval.cs b/src/Serilog.Sinks.File/RollingInterval.cs
index 9fac848..7b013d9 100644
--- a/src/Serilog.Sinks.File/RollingInterval.cs
+++ b/src/Serilog.Sinks.File/RollingInterval.cs
@@ -34,6 +34,11 @@ public enum RollingInterval
///
Month,
+ ///
+ /// Roll every calendar week. Filenames will have yyyyMMdd
appended.
+ ///
+ Week,
+
///
/// Roll every day. Filenames will have yyyyMMdd
appended.
///
diff --git a/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj b/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
index 7b81e3f..6789a87 100644
--- a/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
+++ b/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
@@ -11,9 +11,9 @@
true
serilog;file
images\icon.png
- https://serilog.net/images/serilog-sink-nuget.png
http://serilog.net
Apache-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
https://github.com/serilog/serilog-sinks-file
git
false
diff --git a/src/Serilog.Sinks.File/Sinks/File/RollingIntervalExtensions.cs b/src/Serilog.Sinks.File/Sinks/File/RollingIntervalExtensions.cs
index 2c9e2fd..101a0ef 100644
--- a/src/Serilog.Sinks.File/Sinks/File/RollingIntervalExtensions.cs
+++ b/src/Serilog.Sinks.File/Sinks/File/RollingIntervalExtensions.cs
@@ -28,6 +28,8 @@ public static string GetFormat(this RollingInterval interval)
return "yyyy";
case RollingInterval.Month:
return "yyyyMM";
+ case RollingInterval.Week:
+ return "yyyyMMdd";
case RollingInterval.Day:
return "yyyyMMdd";
case RollingInterval.Hour:
@@ -49,6 +51,8 @@ public static string GetFormat(this RollingInterval interval)
return new DateTime(instant.Year, 1, 1, 0, 0, 0, instant.Kind);
case RollingInterval.Month:
return new DateTime(instant.Year, instant.Month, 1, 0, 0, 0, instant.Kind);
+ case RollingInterval.Week:
+ return new DateTime(instant.Year, instant.Month, instant.Day, 0, 0, 0, instant.Kind);
case RollingInterval.Day:
return new DateTime(instant.Year, instant.Month, instant.Day, 0, 0, 0, instant.Kind);
case RollingInterval.Hour:
@@ -72,6 +76,8 @@ public static string GetFormat(this RollingInterval interval)
return current.Value.AddYears(1);
case RollingInterval.Month:
return current.Value.AddMonths(1);
+ case RollingInterval.Week:
+ return current.Value.AddDays(7);
case RollingInterval.Day:
return current.Value.AddDays(1);
case RollingInterval.Hour:
diff --git a/test/Serilog.Sinks.File.Tests/RollingIntervalExtensionsTests.cs b/test/Serilog.Sinks.File.Tests/RollingIntervalExtensionsTests.cs
index 2d97d1b..8cc0914 100644
--- a/test/Serilog.Sinks.File.Tests/RollingIntervalExtensionsTests.cs
+++ b/test/Serilog.Sinks.File.Tests/RollingIntervalExtensionsTests.cs
@@ -12,6 +12,8 @@ public class RollingIntervalExtensionsTests
new object[]{ RollingInterval.Year, new DateTime(2018, 06, 01), new DateTime(2018, 01, 01), new DateTime(2019, 01, 01) },
new object[]{ RollingInterval.Month, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2018, 02, 01) },
new object[]{ RollingInterval.Month, new DateTime(2018, 01, 14), new DateTime(2018, 01, 01), new DateTime(2018, 02, 01) },
+ new object[]{ RollingInterval.Week, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2018, 01, 08) },
+ new object[]{ RollingInterval.Week, new DateTime(2018, 01, 01, 12, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 08) },
new object[]{ RollingInterval.Day, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2018, 01, 02) },
new object[]{ RollingInterval.Day, new DateTime(2018, 01, 01, 12, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 02) },
new object[]{ RollingInterval.Hour, new DateTime(2018, 01, 01, 0, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 01, 1, 0, 0) },
diff --git a/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj b/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj
index fcf2880..8c99f35 100644
--- a/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj
+++ b/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj
@@ -18,6 +18,8 @@
+
+