public EndlessFileStreamIO(string baseDirectory, long maxLogFileSizeInMBytes = 1024, long maxLogFileSizeInKByte = 0, int splitIntoCountFiles = 4, IEndlessFileStreamFileList fileList = null, IEndlessFileStreamFileListOperations fileOperations = null, IEndlessFileStreamNames fileNames = null) { _baseDirectory = baseDirectory; try { if (!Directory.Exists(_baseDirectory)) { Directory.CreateDirectory(_baseDirectory); } } catch (Exception) { } _fileNames = fileNames ?? new EndlessFileStreamNames(baseDirectory); _fileOperations = fileOperations ?? new EndlessFileStreamFileOperations(_fileNames); _fileList = fileList ?? new EndlessFileStreamFileList(splitIntoCountFiles, _baseDirectory, _fileOperations, _fileNames); if (splitIntoCountFiles <= 0) { throw new ArgumentException($"Invalid number of files to split logfile into: {splitIntoCountFiles}"); } _maxLogFileSizeInBytesEachFile = (maxLogFileSizeInMBytes * 1024 * 1024 + maxLogFileSizeInKByte) / splitIntoCountFiles; }
public EndlessFileStreamFileList(int maxEntries, string baseDirectory, IEndlessFileStreamFileListOperations fileOperations = null, IEndlessFileStreamNames fileNames = null) { _maxEntries = maxEntries; _fileNames = fileNames ?? new EndlessFileStreamNames(baseDirectory); _fileOperations = fileOperations ?? new EndlessFileStreamFileOperations(_fileNames); _fileList = _fileOperations.ReadListFromFile() ?? AddNewFileDeleteOldestIfNeeded(); PurgeRedundantFiles(); }
public EndlessFileStreamFileOperations(IEndlessFileStreamNames fileNames) { _fileNames = fileNames; }