From d459d97fd2ec65df1161489a0dbe6f969e5cfcec Mon Sep 17 00:00:00 2001 From: Markus Schaber Date: Tue, 20 Jun 2023 17:14:48 +0200 Subject: [PATCH] Allow to set log file prefix and ITextFormatter. closes #39 --- .../LoggerConfigurationExtensions.cs | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/Serilog.Sinks.RollingFileAlternate/LoggerConfigurationExtensions.cs b/src/Serilog.Sinks.RollingFileAlternate/LoggerConfigurationExtensions.cs index 9e2c033..34a84d9 100644 --- a/src/Serilog.Sinks.RollingFileAlternate/LoggerConfigurationExtensions.cs +++ b/src/Serilog.Sinks.RollingFileAlternate/LoggerConfigurationExtensions.cs @@ -116,6 +116,39 @@ public static LoggerConfiguration RollingFileAlternate( return configuration.Sink(sink, minimumLevel); } + /// + /// Creates an alternative implementation of the rolling file sink with + /// an overload to pass an ITextFormatter. + /// + /// + /// Formatter to control how events are rendered into the file. To control + /// plain text formatting, use the overload that accepts an output template instead. + /// The names of the directory to be logged + /// The prefix for the log file name. + /// Minimum + /// The size files should grow up to (default 2MB) + /// The maximum number of log files that will be retained, + /// including the current log file. The default is null which is unlimited. + /// + public static LoggerConfiguration RollingFileAlternate( + this LoggerSinkConfiguration configuration, + ITextFormatter formatter, + string logDirectory, + string logFilePrefix, + LogEventLevel minimumLevel = LevelAlias.Minimum, + long? fileSizeLimitBytes = null, + int? retainedFileCountLimit = null) + { + if (configuration == null) + { + throw new ArgumentNullException("configuration"); + } + + var sink = new AlternateRollingFileSink(logDirectory, formatter, fileSizeLimitBytes ?? TwoMegabytes, + retainedFileCountLimit, logFilePrefix: logFilePrefix); + return configuration.Sink(sink, minimumLevel); + } + /// /// Creates an hourly rolling file sink that rolls files every hour. ///