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.
31 lines
842 B
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();
|
|
}
|
|
}
|