Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Log exceptions caught in WCF service deployed on Azure

Tags:

.net

cloud

azure

What is the best way to log the exceptions caught in WCF service hosted on cloud?

like image 382
Ram Avatar asked Jun 21 '10 09:06

Ram


1 Answers

You can take advantage of System.Diagnostics and logging your exceptions with Trace.traceError(). You can then schedule these trace statements to be periodically uploaded to table storage (maybe once a minute?), where you can then retrieve and analyze the trace statements either with an on-premise app or one running in a worker role.

For example: in your worker role's OnStart(), customize the Diagnostic Manager to upload your trace data to table storage. In this example, it's uploading every minute, to the storage account specified in DiagnosticsConnectionString (this is, by default, set up to point to dev storage):

var diag = DiagnosticMonitor.GetDefaultInitialConfiguration();
diag.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
diag.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);
DiagnosticMonitor.Start("DiagnosticsConnectionString", diag);

Then, whenever you encounter an exception in your WCF Service, log it:

System.Diagnostics.Trace.TraceError("WCF Error caught: ...");

Finally, either write some code to query the diagnostic data, or use something like the new built-in Visual Studio storage explorer to view and act on the errors.

like image 148
David Makogon Avatar answered Oct 22 '22 13:10

David Makogon