Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save TheEskhaton/7469b44e1cf12141b5a62e14d0729198 to your computer and use it in GitHub Desktop.
Save TheEskhaton/7469b44e1cf12141b5a62e14d0729198 to your computer and use it in GitHub Desktop.
public static class EventLogApplicationInsightsConfig
{
private static readonly TelemetryClient telemetryClient = new TelemetryClient(new TelemetryConfiguration("INSTRUMENTATION KEY"));
public static void ConfigureListener()
{
EventLogEvents.LogEvent.After += LogToApplicationInsights;
}
private static void LogToApplicationInsights(object sender, LogEventArgs e)
{
switch (e.Event.EventType)
{
case "E":
var exceptionTelemetry = new ExceptionTelemetry(e.Event.Exception);
exceptionTelemetry.Properties.Add("machineName", e.Event.EventMachineName);
exceptionTelemetry.Properties.Add("description", e.Event.EventDescription);
telemetryClient.TrackException(exceptionTelemetry);
break;
case "W":
var traceTelemetry = new TraceTelemetry(e.Event.EventDescription, SeverityLevel.Warning);
traceTelemetry.Properties.Add("machineName", e.Event.EventMachineName);
traceTelemetry.Properties.Add("description", e.Event.EventDescription);
traceTelemetry.Properties.Add("exceptionMessage", e.Event.Exception?.Message);
telemetryClient.TrackTrace(traceTelemetry);
break;
default:
var verboseTelemetry = new TraceTelemetry(e.Event.EventDescription, SeverityLevel.Verbose);
verboseTelemetry.Properties.Add("machineName", e.Event.EventMachineName);
verboseTelemetry.Properties.Add("description", e.Event.EventDescription);
telemetryClient.TrackTrace(verboseTelemetry);
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment