You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Recyclarr/Logging/LoggerFactory.cs

31 lines
842 B

using Serilog;
using Serilog.Core;
namespace Recyclarr.Logging;
public class LoggerFactory
{
private const string ConsoleTemplate = "[{Level:u3}] {Message:lj}{NewLine}{Exception}";
private readonly LoggingLevelSwitch _logLevel;
private readonly Func<IDelayedFileSink> _fileSinkFactory;
public LoggerFactory(LoggingLevelSwitch logLevel, Func<IDelayedFileSink> fileSinkFactory)
{
_logLevel = logLevel;
_fileSinkFactory = fileSinkFactory;
}
public ILogger Create()
{
var fileSink = _fileSinkFactory();
fileSink.SetTemplate(ConsoleTemplate);
return new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console(outputTemplate: ConsoleTemplate, levelSwitch: _logLevel)
.WriteTo.Sink(fileSink)
.CreateLogger();
}
}