diff --git a/Directory.Build.props b/Directory.Build.props
index d54992d..0248539 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -7,6 +7,7 @@
$(MSBuildThisFileDirectory)assets/Serilog.snk
enable
enable
+ latest
diff --git a/README.md b/README.md
index bdc3654..1ac6ed7 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Writes [Serilog](https://serilog.net) events to one or more text files.
Install the [Serilog.Sinks.File](https://www.nuget.org/packages/Serilog.Sinks.File/) package from NuGet:
```powershell
-Install-Package Serilog.Sinks.File
+dotnet add package Serilog.Sinks.File
```
To configure the sink in C# code, call `WriteTo.File()` during logger configuration:
@@ -36,7 +36,7 @@ The limit can be changed or removed using the `fileSizeLimitBytes` parameter.
```csharp
.WriteTo.File("log.txt", fileSizeLimitBytes: null)
-```
+```
For the same reason, only **the most recent 31 files** are retained by default (i.e. one long month). To change or remove this limit, pass the `retainedFileCountLimit` parameter.
diff --git a/example/Sample/Program.cs b/example/Sample/Program.cs
index d980bd8..660ca72 100644
--- a/example/Sample/Program.cs
+++ b/example/Sample/Program.cs
@@ -1,35 +1,27 @@
using Serilog;
using Serilog.Debugging;
-namespace Sample;
+SelfLog.Enable(Console.Out);
-public class Program
-{
- public static void Main(string[] args)
- {
- SelfLog.Enable(Console.Out);
-
- var sw = System.Diagnostics.Stopwatch.StartNew();
+var sw = System.Diagnostics.Stopwatch.StartNew();
- Log.Logger = new LoggerConfiguration()
- .WriteTo.File("log.txt")
- .CreateLogger();
+Log.Logger = new LoggerConfiguration()
+ .WriteTo.File("log.txt")
+ .CreateLogger();
- for (var i = 0; i < 1000000; ++i)
- {
- Log.Information("Hello, file logger!");
- }
+for (var i = 0; i < 1000000; ++i)
+{
+ Log.Information("Hello, file logger!");
+}
- Log.CloseAndFlush();
+Log.CloseAndFlush();
- sw.Stop();
+sw.Stop();
- Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds} ms");
- Console.WriteLine($"Size: {new FileInfo("log.txt").Length}");
+Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds} ms");
+Console.WriteLine($"Size: {new FileInfo("log.txt").Length}");
- Console.WriteLine("Press any key to delete the temporary log file...");
- Console.ReadKey(true);
+Console.WriteLine("Press any key to delete the temporary log file...");
+Console.ReadKey(true);
- File.Delete("log.txt");
- }
-}
+File.Delete("log.txt");
diff --git a/example/Sample/Sample.csproj b/example/Sample/Sample.csproj
index a05ad36..fa9016e 100644
--- a/example/Sample/Sample.csproj
+++ b/example/Sample/Sample.csproj
@@ -1,7 +1,7 @@
- net48;net6.0
+ net48;net8.0
Exe
true
diff --git a/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj b/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
index e9edc97..fceae9c 100644
--- a/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
+++ b/src/Serilog.Sinks.File/Serilog.Sinks.File.csproj
@@ -2,42 +2,45 @@
Write Serilog events to text files in plain or JSON format.
- 5.0.1
+ 6.0.0
Serilog Contributors
- net45;netstandard1.3;netstandard2.0;netstandard2.1;net5.0;net6.0
+
+ net471;net462
+
+ $(TargetFrameworks);net8.0;net6.0;netstandard2.0
true
serilog;file
- images\icon.png
+ serilog-sink-nuget.png
https://serilog.net/images/serilog-sink-nuget.png
https://github.com/serilog/serilog-sinks-file
Apache-2.0
https://github.com/serilog/serilog-sinks-file
git
Serilog
- true
- false
true
- $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
True
snupkg
+ README.md
-
-
+
-
+
$(DefineConstants);ATOMIC_APPEND;HRESULTS
-
+
$(DefineConstants);OS_MUTEX
-
+
+
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 5d5af8c..9ad3db7 100644
--- a/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj
+++ b/test/Serilog.Sinks.File.Tests/Serilog.Sinks.File.Tests.csproj
@@ -1,7 +1,7 @@
- net48;net6.0
+ net48;net8.0
true
@@ -10,12 +10,12 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/test/Serilog.Sinks.File.Tests/Support/DisposableLogger.cs b/test/Serilog.Sinks.File.Tests/Support/DisposableLogger.cs
deleted file mode 100644
index ff8cf35..0000000
--- a/test/Serilog.Sinks.File.Tests/Support/DisposableLogger.cs
+++ /dev/null
@@ -1,419 +0,0 @@
-using Serilog.Core;
-using Serilog.Events;
-
-namespace Serilog.Sinks.File.Tests.Support;
-
-public class DisposableLogger : ILogger, IDisposable
-{
- public bool Disposed { get; set; }
-
- public void Dispose()
- {
- Disposed = true;
- }
-
- public ILogger ForContext(ILogEventEnricher enricher)
- {
- throw new NotImplementedException();
- }
-
- public ILogger ForContext(IEnumerable enrichers)
- {
- throw new NotImplementedException();
- }
-
- public ILogger ForContext(string propertyName, object value, bool destructureObjects = false)
- {
- throw new NotImplementedException();
- }
-
- public ILogger ForContext()
- {
- throw new NotImplementedException();
- }
-
- public ILogger ForContext(Type source)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEvent logEvent)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, Exception exception, string messageTemplate, T0 propertyValue0,
- T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, Exception exception, string messageTemplate, T0 propertyValue0,
- T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Write(LogEventLevel level, Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public bool IsEnabled(LogEventLevel level)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Verbose(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Debug(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Information(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Information(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Information(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Information(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Information(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Information(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Information(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Information(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Information(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Information(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Warning(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Error(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Error(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Error(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Error(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Error(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Error(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Error(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Error(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Error(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Error(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(Exception exception, string messageTemplate)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(Exception exception, string messageTemplate, T propertyValue)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(Exception exception, string messageTemplate, T0 propertyValue0, T1 propertyValue1,
- T2 propertyValue2)
- {
- throw new NotImplementedException();
- }
-
- public void Fatal(Exception exception, string messageTemplate, params object[] propertyValues)
- {
- throw new NotImplementedException();
- }
-
- public bool BindMessageTemplate(string messageTemplate, object[] propertyValues, out MessageTemplate parsedTemplate,
- out IEnumerable boundProperties)
- {
- throw new NotImplementedException();
- }
-
- public bool BindProperty(string propertyName, object value, bool destructureObjects, out LogEventProperty property)
- {
- throw new NotImplementedException();
- }
-}
diff --git a/test/Serilog.Sinks.File.Tests/Support/Extensions.cs b/test/Serilog.Sinks.File.Tests/Support/Extensions.cs
index 3fd7a15..bed6046 100644
--- a/test/Serilog.Sinks.File.Tests/Support/Extensions.cs
+++ b/test/Serilog.Sinks.File.Tests/Support/Extensions.cs
@@ -4,7 +4,7 @@ namespace Serilog.Sinks.File.Tests.Support;
public static class Extensions
{
- public static object LiteralValue(this LogEventPropertyValue @this)
+ public static object? LiteralValue(this LogEventPropertyValue @this)
{
return ((ScalarValue)@this).Value;
}