private async Task GetAndSubmitLogAsync(LogSubmissionReason reason)
		{
			// We only want to allow one upload operation at a time.
			await _uploadLock.WaitAsync();
			try
			{
				var log = await _logger.GetLogContentsAsync();
				await SubmitLogInternalAsync(log, reason);
			}
			finally
			{
				_uploadLock.Release();
			}
		}
		private async Task SubmitLogInternalAsync(string log, LogSubmissionReason reason)
		{
			var result = await _logService.Upload(new DebugLog
			{
				Data = log,
				SubmissionReason = reason
			});

            _logger.LogDebug("UploadLog result - always submit errors: {0}", result.AlwaysSubmitErrors);

			await _configurationManager.SetValueAsync(ALWAYS_SUBMIT_ERRORS, result.AlwaysSubmitErrors.ToString());
		}