/// <summary> /// Terminates the logging sub-systems. /// </summary> public void Stop() { if (!IsRunning) { throw new InvalidOperationException("The LogController has not been started."); } IsRunning = false; // // stop cache monitor thread if (_InternalThreadWorker.IsRunning) { // wait for thread to finish; do not cancel while (_InternalThreadWorker.IsRunning) { Threading.ThreadingHelper.Sleep(5); } } _InternalThreadWorker.Stop(); _InternalThreadWorker = null; // stop the log marshal LogMarshal.Close(); // get final statistics InternalGetStatistics(); LogMarshal = null; }
/// <summary> /// Initializes and engages the logging sub-systems. /// </summary> public void Start() { if (IsRunning) { throw new InvalidOperationException("The LogController has already been started."); } // create/open LogMarshal LogMarshal = new LogMarshal(_Log, Settings); LogMarshal.Open(); _FinalStatistics = null; // create/start cache flush and archive monitor thread _InternalThreadWorker = new LogControllerThreadWorker(LogMarshal, Settings, _ArchiveStatistics, _LogArchiveFileStore, _ArchiveFilenameFactory); _InternalThreadWorker.Start(); // IsRunning = true; StartTime = DateTimeOffset.Now; }