From Microsoft Web Site:
“Azure Storage is Microsoft’s cloud storage solution for modern data storage scenarios. Azure Storage offers a massively scalable object store for data objects, a file system service for the cloud, a messaging store for reliable messaging, and a NoSQL store.
Azure Storage includes these data services:
Azure Blobs: A massively scalable object store for text and binary data.
Azure Files: Managed file shares for cloud or on-premises deployments.
Azure Queues: A messaging store for reliable messaging between application components.
Azure Tables: A NoSQL store for schemaless storage of structured data.”
Azure Blob storage is Microsoft’s object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data.
Azure Storage supports three types of blobs:
Block blobs: store text and binary data, up to about 4.7 TB. Block blobs are made up of blocks of data that can be managed individually.
Append blobs: are made up of blocks like block blobs, but are optimized for append operations. Append blobs are ideal for scenarios such as logging data from virtual machines.
Page blobs: store random access files up to 8 TB in size. Page blobs store virtual hard drive (VHD) files and serve as disks for Azure virtual machines.“
In this post, we will see how to save a Log file into a Blob Storage, using Append blobs.
First of all, we open a browser, go to Azure portal and we create a Storage Account:



After the validation, we click on “Create” in order to create the Storage Account:

The Storage Account has been created:

Now, we go to resource and then click on Containers:

and we create a Container called “log”:

In order to get the Storage’s connection, we have to push on “Access Key” and take the value into “Connection string”:


Now, we open Visual Studio 2019, create a Console Application and we write this code in the file Program.cs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Blob; using System; using System.Threading.Tasks; namespace LogFile { class Program { static async Task Main( string [] args) { // define the connection string with the Storage string connectString = "DefaultEndpointsProtocol=https;AccountName=teststoragebydamiano;AccountKey=5ZNdXmcj4ijgZkV6J/3I5NNZXwp80XMIXpTipAAJHPGE/13ZS8kVB3tJ1hN8TcGi8slqgTo67Ctab5FD/QG/ww==;EndpointSuffix=core.windows.net" ; // define container's name string containerName = "log" ; // define log file's name string logFileName = "TestLog.log" ; // define the Cloud Storage Account var storageAccount = CloudStorageAccount.Parse(connectString); // define the Cloud Blob Client used to manage the containers var blobClient = storageAccount.CreateCloudBlobClient(); // define the new value to add into LogFile string newValueAdd = $ "Guid:{Guid.NewGuid().ToString()};ValueInt:{new Random().Next(1,1000)};Date:{DateTime.Now.ToLongTimeString()}" ; // write log file await WriteLog(containerName, logFileName, blobClient, newValueAdd); } static async Task WriteLog( string nameContainer, string nameLogFile, CloudBlobClient objBlobClient, string newValue) { // take Container's reference var container = objBlobClient.GetContainerReference(nameContainer.ToString()); // take Blob's reference to modify var blob = container.GetAppendBlobReference(nameLogFile); // verify the existance of blob bool isPresent = await blob.ExistsAsync(); // if blob doesn't exist, the system will create it if (!isPresent) { await blob.CreateOrReplaceAsync(); } // append the new value and new line await blob.AppendTextAsync($ "{newValue} \n" ); } } } |
Finally, in order to verify that everything worked fine, we run twice the application and then, from Azure portal, we download the Log File created by the application:

and the we open it:

The application works fine, because there are two items inside the file.