/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="storageFolder">Имя папки-хранилища для логов</param> /// <param name="readOnly">Открыть только для чтения</param> /// <param name="bufferedOutput">Буферизированный вывод событий в файл</param> /// <param name="flushPeriod">Периодичность сброса буфера, секунды</param> /// <param name="logFilePrefix">Префикс лог-файлов</param> public EventLink(string storageFolder, bool readOnly, bool bufferedOutput, int flushPeriod, string logFilePrefix) { if (string.IsNullOrEmpty(storageFolder)) { throw new ArgumentNullException("storageFolder"); } if (flushPeriod < 0) { throw new ArgumentOutOfRangeException("flushPeriod"); } if (string.IsNullOrEmpty(logFilePrefix)) { throw new ArgumentNullException("logFilePrefix"); } _storageFolder = storageFolder; _readOnly = readOnly; _logFilePrefix = logFilePrefix; _syncFilesMutex = MutexHelper.CreateSyncFilesMutex(storageFolder); _eventIterators = new Dictionary <string, IEnumerator <EventRecord[]> >(); if (!Directory.Exists(_storageFolder)) { Directory.CreateDirectory(_storageFolder); } if (!_readOnly) { // открываем лог OpenStorage(); // внутренний буфер событий _eventsQueue = new EventsQueue(bufferedOutput, flushPeriod, FlushBuffer); } }
/// <summary> /// Создает экземпляр класса /// </summary> /// <param name="storageFolder">Имя папки-хранилища для логов</param> /// <param name="readOnly">Открыть только для чтения</param> /// <param name="bufferedOutput">Буферизированный вывод событий в файл</param> /// <param name="flushPeriod">Периодичность сброса буфера, секунды</param> /// <param name="logFilePrefix">Префикс лог-файлов</param> public EventLink(String storageFolder, Boolean readOnly, Boolean bufferedOutput, Int32 flushPeriod, String logFilePrefix) { if (String.IsNullOrEmpty(storageFolder)) throw new ArgumentNullException("storageFolder"); if (flushPeriod < 0) throw new ArgumentOutOfRangeException("flushPeriod"); if (String.IsNullOrEmpty(logFilePrefix)) throw new ArgumentNullException("logFilePrefix"); _storageFolder = storageFolder; _readOnly = readOnly; _logFilePrefix = logFilePrefix; _syncFilesMutex = MutexHelper.CreateSyncFilesMutex(storageFolder); _eventIterators = new Dictionary<String, IEnumerator<EventRecord[]>>(); if (!Directory.Exists(_storageFolder)) Directory.CreateDirectory(_storageFolder); if (!_readOnly) { // открываем лог OpenStorage(); // внутренний буфер событий _eventsQueue = new EventsQueue(bufferedOutput, flushPeriod, FlushBuffer); } }