Exemple #1
0
 /// <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;
 }
Exemple #2
0
 /// <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;
 }