public FileLogger(string categoryName, string fallbackFileName, IFileLoggerProcessor processor, IFileLoggerSettingsBase settings, Func <DateTimeOffset> timestampGetter = null) : this( categoryName ?? throw new ArgumentNullException(nameof(categoryName)), settings?.MapToFileName(categoryName, fallbackFileName ?? throw new ArgumentNullException(nameof(fallbackFileName))) ?? throw new ArgumentNullException(nameof(settings)), processor, settings.BuildFilter(categoryName), settings.IncludeScopes, settings.TextBuilder, timestampGetter : timestampGetter) { }
public void Update(string fallbackFileName, IFileLoggerSettingsBase settings) { // full thread synchronization is omitted for performance reasons // as it is considered non-critical (ConsoleLogger is implemented in a similar way) var state = CreateState(settings); state.FileName = settings.MapToFileName(CategoryName, fallbackFileName); state.Filter = settings.BuildFilter(CategoryName); state.IncludeScopes = settings.IncludeScopes; state.TextBuilder = settings.TextBuilder ?? FileLogEntryTextBuilder.Instance; State = state; }