private CloudAppendBlob GetBlob(DateTime eventTime) { string tagName = eventTime.ToString("yyyy-MM-dd"); if (tagName != _currentTagName) { _currentTagName = tagName; _appendBlob = _blobContainer.GetAppendBlobReference($"{_blobNamePrefix}{_currentTagName}.txt"); if(!_appendBlob.Exists()) _appendBlob.CreateOrReplace(); } return _appendBlob; }
protected override void Write(LogEventInfo logEvent) { if (_client == null) { return; } string containerName = Container.Render(logEvent); string blobName = BlobName.Render(logEvent); if (_container == null || _container.Name != containerName) { _container = _client.GetContainerReference(containerName); _blob = null; } if (_blob == null || _blob.Name != blobName) { _blob = _container.GetAppendBlobReference(blobName); if (!_blob.Exists()) { try { _blob.Properties.ContentType = "text/plain"; _blob.CreateOrReplace(AccessCondition.GenerateIfNotExistsCondition()); } catch (StorageException ex) when (ex.RequestInformation.HttpStatusCode == (int) HttpStatusCode.Conflict) { // to be expected } } } _blob.AppendText(Layout.Render(logEvent) + "\r\n", Encoding.UTF8); }
private void InstanciateStorageBlob(string formattedStorageContainerName, string formattedStorageBlobName) { if ((_appendBlob == null) || (_appendBlob.Name != formattedStorageBlobName)) { _appendBlob = _blobContainer.GetAppendBlobReference(formattedStorageBlobName); if (!_appendBlob.Exists()) { try { _appendBlob.CreateOrReplace(AccessCondition.GenerateIfNotExistsCondition(), null, null); } catch (StorageException storageException) { WriteDebugError(String.Format("NLog.AzureStorage - Failed to create Azure Storage Append Blob '{0}' in the Container '{1}' - Storage Exception: {2} {3}", formattedStorageBlobName, formattedStorageContainerName, storageException.Message, GetStorageExceptionHttpStatusMessage(storageException))); throw; } } } }