public LogFileInfo(FileLoggerProcessor processor, ILogFileSettings fileSettings, IFileLoggerSettings settings)
            {
                BasePath   = settings.BasePath ?? string.Empty;
                PathFormat = fileSettings.Path;
                PathPlaceholderResolver = GetActualPathPlaceholderResolver(fileSettings.PathPlaceholderResolver ?? settings.PathPlaceholderResolver);
                FileAppender            = settings.FileAppender ?? processor._fallbackFileAppender.Value;
                AccessMode    = fileSettings.FileAccessMode ?? settings.FileAccessMode ?? LogFileAccessMode.Default;
                Encoding      = fileSettings.FileEncoding ?? settings.FileEncoding ?? Encoding.UTF8;
                DateFormat    = fileSettings.DateFormat ?? settings.DateFormat ?? "yyyyMMdd";
                CounterFormat = fileSettings.CounterFormat ?? settings.CounterFormat;
                MaxSize       = fileSettings.MaxFileSize ?? settings.MaxFileSize ?? 0;

                Queue = processor.CreateLogFileQueue(fileSettings, settings);

                // important: closure must pick up the current token!
                CancellationToken forcedCompleteToken = processor._forcedCompleteTokenSource.Token;

                WriteFileTask = Task.Run(() => processor.WriteFileAsync(this, forcedCompleteToken));
 public LogFilePathFormatContext(FileLoggerProcessor processor, LogFileInfo logFile, FileLogEntry logEntry)
 {
     _processor = processor;
     _logFile   = logFile;
     _logEntry  = logEntry;
 }