Created
May 15, 2019 13:04
-
-
Save TheEskhaton/7469b44e1cf12141b5a62e14d0729198 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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