protected override async Task EmitBatchAsync(IEnumerable <LogEvent> events) { // If the day has changed, roll along to a new blob if (_day.Date != DateTime.Now.Date) { Roll(); } Stream stream; try { stream = await _blob.OpenWriteAsync(false); } catch (StorageException ex) when(ex.RequestInformation.HttpStatusCode == 404) { // When the blob doesn't already exist, create it stream = await _blob.OpenWriteAsync(true); } using (StreamWriter writer = new StreamWriter(stream)) { foreach (LogEvent evnt in events) { _formatter.Format(evnt, writer); } } }
public async Task <CloudBlobStream> OpenAppendBlobWriteStream(CloudAppendBlob blob) { BlobRequestOptions requestOptions = new BlobRequestOptions(); OperationContext ctx = new OperationContext(); return(await blob.OpenWriteAsync(true, AccessCondition.GenerateEmptyCondition(), requestOptions, ctx, Engine.CT)); }
protected override async Task EmitBatchAsync(IEnumerable <LogEvent> events) { Stream stream; try { stream = await _blob.OpenWriteAsync(false); } catch (StorageException ex) when(ex.RequestInformation.HttpStatusCode == 404) { // When the blob doesn't already exist, create it stream = await _blob.OpenWriteAsync(true); } using (StreamWriter writer = new StreamWriter(stream)) { foreach (LogEvent evnt in events) { _formatter.Format(evnt, writer); } } }
private static void WriteLog(string manifestName, string logData, ILogger logger, bool createNew) { string containerName = Constant.Storage.BlobContainer.MediaServices; string logName = manifestName.Replace(Constant.Media.IngestManifest.FileExtension, Constant.Media.IngestManifest.FileExtensionLog); CloudAppendBlob logBlob = _blobClient.GetAppendBlob(containerName, logName); CloudBlobStream logStream = logBlob.OpenWriteAsync(createNew).Result; using (StreamWriter logWriter = new StreamWriter(logStream)) { logWriter.WriteLine(logData); } if (logger != null) { logger.LogInformation(logData); } }
public async Task <Stream> OpenWriteAsync(string id, bool append, CancellationToken cancellationToken) { (CloudBlobContainer container, string path) = await GetPartsAsync(id); if (append) { CloudAppendBlob cab = container.GetAppendBlobReference(path); return(await cab.OpenWriteAsync(!append)); } else { CloudBlockBlob cab = container.GetBlockBlobReference(path); return(await cab.OpenWriteAsync()); } }
public async Task <Stream> OpenWriteAsync(string fullPath, bool append, CancellationToken cancellationToken) { (CloudBlobContainer container, string path) = await GetPartsAsync(fullPath); if (append) { CloudAppendBlob cab = container.GetAppendBlobReference(path); await AttachBlobMetaAsync(cab, fullPath).ConfigureAwait(false); return(await cab.OpenWriteAsync(!append).ConfigureAwait(false)); } else { CloudBlockBlob cab = container.GetBlockBlobReference(path); await AttachBlobMetaAsync(cab, fullPath).ConfigureAwait(false); return(await cab.OpenWriteAsync().ConfigureAwait(false)); } }