protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { if (_flushTimer != null) { _flushTimer.Dispose(); } // ensure any remaining logs are flushed Flush(); } _disposed = true; } }