public bool IsNeedToOpenNewFile( ILogFileWrapper current ) { //current allowed to be null var needToOpenNewFile = false; if (current == null || !current.IsActive) { needToOpenNewFile = true; } if (current != null && current.IsActive) { if (current.FileSize >= _logFilesSettings.MaxFileSize) { //файл на замену - по размеру needToOpenNewFile = true; } } if (current != null && current.IsActive) { var now = AmbientContext.Now; if (now.Date != current.CreateDate.Date) { //файл на замену - дата сменилась needToOpenNewFile = true; } } return needToOpenNewFile; }
public DefaultFileCycling( ILogFilesSettings logFilesSettings, IOpenReasoning openReasoning ) { if (logFilesSettings == null) { throw new ArgumentNullException("logFilesSettings"); } if (openReasoning == null) { throw new ArgumentNullException("openReasoning"); } _logFilesSettings = logFilesSettings; _openReasoning = openReasoning; DeleteOldFiles(); //using last existing log file _current = _logFilesSettings.FileProvider.GetLastFile(); Debug.WriteLine("choosed: " + (_current != null ? _current.FileName : "no file")); }
private void OpenNextFileStream( ) { if (_current != null && _current.IsActive) { //current file is not closed //so cancel to open next file return; } _current = _logFilesSettings.FileProvider.CreateNextFile(); }
private void SafelyCloseFileStream(LogFileCloseReasonEnum reason) { if (_current != null && _current.IsActive) { Debug.WriteLine("close: " + _current.FileName); _current.Close(reason); _current = null; } }