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);
                }
            }
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
                }
            }
        }
예제 #4
0
        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));
            }
        }