From 94430f394dc3e6a6cbd244ceda9f849add1eb175 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sat, 24 Aug 2024 11:03:23 -0500 Subject: [PATCH] refactor: Add support for custom log sinks --- src/Recyclarr.Cli/Logging/LoggerFactory.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Recyclarr.Cli/Logging/LoggerFactory.cs b/src/Recyclarr.Cli/Logging/LoggerFactory.cs index ce2013c4..2b6eded2 100644 --- a/src/Recyclarr.Cli/Logging/LoggerFactory.cs +++ b/src/Recyclarr.Cli/Logging/LoggerFactory.cs @@ -7,7 +7,7 @@ using Serilog.Templates.Themes; namespace Recyclarr.Cli.Logging; -public class LoggerFactory(IAppPaths paths, LoggingLevelSwitch levelSwitch, IEnvironment env) +public class LoggerFactory(IAppPaths paths, LoggingLevelSwitch levelSwitch, IEnvironment env, IEnumerable sinks) { private static string GetBaseTemplateString() { @@ -41,7 +41,7 @@ public class LoggerFactory(IAppPaths paths, LoggingLevelSwitch levelSwitch, IEnv var logFilePrefix = $"recyclarr_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}"; var logDir = paths.LogDirectory; - return new LoggerConfiguration() + var config = new LoggerConfiguration() .MinimumLevel.Is(LogEventLevel.Verbose) .Enrich.FromLogContext() .Enrich.With() @@ -51,8 +51,14 @@ public class LoggerFactory(IAppPaths paths, LoggingLevelSwitch levelSwitch, IEnv .WriteTo.File(GetFileTemplate(), LogFilePath("debug"))) .WriteTo.Logger(c => c .Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Verbose) - .WriteTo.File(GetFileTemplate(), LogFilePath("verbose"))) - .CreateLogger(); + .WriteTo.File(GetFileTemplate(), LogFilePath("verbose"))); + + foreach (var sink in sinks) + { + config.WriteTo.Sink(sink, levelSwitch: levelSwitch); + } + + return config.CreateLogger(); string LogFilePath(string type) {