Example #1
0
        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;
        }
Example #2
0
        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"));
        }
Example #3
0
        private void OpenNextFileStream(
            )
        {
            if (_current != null && _current.IsActive)
            {
                //current file is not closed
                //so cancel to open next file

                return;
            }

            _current = _logFilesSettings.FileProvider.CreateNextFile();
        }
Example #4
0
        private void SafelyCloseFileStream(LogFileCloseReasonEnum reason)
        {
            if (_current != null && _current.IsActive)
            {
                Debug.WriteLine("close: " + _current.FileName);

                _current.Close(reason);
                _current = null;
            }
        }