public FileLogger(IQueuedLogWriter logWriter, string categoryName, FileLoggerOptions options) { Requires.NotNull(logWriter, nameof(logWriter)); Requires.NotEmpty(categoryName, nameof(categoryName)); Requires.NotNull(options, nameof(options)); _logWriter = logWriter; _categoryName = categoryName; _options = options; }
public FileQueuedLogWriter(FileLoggerOptions options) { Requires.NotNull(options, nameof(options)); _options = options; _cancellationTokenSource = new CancellationTokenSource(); _loggingQueue = new ConcurrentQueue <LogMessage>(); _baseIntervalTime = TimeSpan.FromSeconds(5); _processingTask = Task.Run(ProcessQueueAsync); }
/// <summary> /// Creates a new instance of the <see cref="FileLoggerProvider" />. /// </summary> /// <param name="options">A delegate specifying the options to be used for file logging.</param> public FileLoggerProvider(Action <FileLoggerOptions> options) { Requires.NotNull(options, nameof(options)); var opts = new FileLoggerOptions { MinimumLogLevel = LogLevel.Information, TimeStampFormat = "yyyy-MM-dd HH:mm:ss", LogDirectory = "Logs", LogExtension = ".log", LogName = "Log", TimeStampFactory = () => DateTimeOffset.UtcNow }; options(opts); _options = opts; _logWriter = new FileQueuedLogWriter(opts); }