IFileLoggerSettingsBase IFileLoggerSettingsBase.Freeze()
        {
            if (_isFrozen)
            {
                return(this);
            }

            FileLoggerSettingsBase clone = CreateClone();

            clone._isFrozen = true;
            return(clone);
        }
        protected FileLoggerSettingsBase(FileLoggerSettingsBase other)
        {
            FileAppender   = other.FileAppender;
            BasePath       = other.BasePath;
            EnsureBasePath = other.EnsureBasePath;
            FileEncoding   = other.FileEncoding;

            FallbackFileName = other.FallbackFileName;
            if (other.FileNameMappings != null)
            {
                FileNameMappings = new Dictionary <string, string>(other.FileNameMappings);
            }

            DateFormat    = other.DateFormat;
            CounterFormat = other.CounterFormat;
            MaxFileSize   = other.MaxFileSize;
            TextBuilder   = other.TextBuilder;
            IncludeScopes = other.IncludeScopes;
            MaxQueueSize  = other.MaxQueueSize;
        }