Home > DeveloperSection > Articles > Create Log Event in Windows Azure

Create Log Event in Windows Azure


Cloud Computing Cloud Computing 
Ratings:
0 Comment(s)
 6152  View(s)
Rate this:

Create Log Event in Windows Azure

In this article I am going to explain how create event log in windows azure application. In the production deployment, sometimes we need to trace the inner working of our application. In ASP.Net and windows form application we can trace the information into a file. But in an Azure we can use the following methods to trace information:

  • Writing Trace to Storage Account Table
  • Writing Trace to Storage Account Queue
  • Writing Trace to SQL Azure
  • Emailing Trace to Administrator

Now create an entity (LogEntry) which is derived from the TableServiceEntity, as we store this in the storage table.

    public class LogEntry : TableServiceEntity

    {

        public string Message

        {

            get;

            set;

        }

        public DateTime EventTime

        {

            get;

            set;

        }

    }

Now create a custom listener class (MyListener) by inheriting from TraceListener. For deriving from it we need to override Write () and WriteLine () methods which are abstract:

    public class MyListener : TraceListener

    {

        public override void Write(string msg)

        {

            WriteLine(msg);

        }

        public override void WriteLine(string msg)

        {

            CloudStorageAccount account = CloudStorageAccount.DevelopmentStorageAccount;

            CloudTableClient client = account.CreateCloudTableClient();

            client.CreateTableIfNotExist("Log");

 

            // Create table context

            TableServiceContext tableContext = new TableServiceContext 
                                
(account.TableEndpoint.ToString(), account.Credentials);

 

           

     // Create entity

            LogEntry log = new LogEntry();

            log.PartitionKey = Guid.NewGuid().ToString();

            log.RowKey = Guid.NewGuid().ToString();

            log.Message = msg;

            log.EventTime = DateTime.Now;

 

            // Add entity to table and save the changes

            tableContext.AddObject("Log", log);

            tableContext.SaveChanges();

        }

    }

The WriteLine() methods stores the messages into development storage table.

Now we can integrate the listener to our application, Create a new web role project and add the following code into the WebRole OnStart() method.

 public override bool OnStart()

        {

            Trace.Listeners.Add(new MyListener());

            Trace.WriteLine("Traced Message");

            Trace.WriteLine("Another traced message");

            return base.OnStart();

        }

 

Now press F5 to execute the application.

After executing the application you can view the results in a table. Open the server explorer (Ctrl + W + L) and expand Windows Azure Storage section and Tables section. Double click on the log table to view the result.

Create Log Event in Windows Azure

It will display the output in right section as shown in the above figure.

I think after reading this article you can easily trace an event in a windows azure application and store them in a table.


Don't want to miss updates? Please click the below button!

Follow MindStick