in agent/agent-bootstrap/src/main/java/com/microsoft/applicationinsights/agent/bootstrap/diagnostics/etw/EtwAppender.java [77:123]
protected void append(ILoggingEvent logEvent) {
String logger = logEvent.getLoggerName();
if (logger != null
&& logger.startsWith(
"com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.")) {
addWarn("Skipping attempt to log to " + logger);
return;
}
Level level = logEvent.getLevel();
IpaEtwEventBase event;
// empty if no throwable
switch (level.levelInt) {
case Level.ERROR_INT:
IpaError error = new IpaError(proto);
error.setStacktrace(ThrowableProxyUtil.asString(logEvent.getThrowableProxy()));
event = error;
break;
case Level.WARN_INT:
IpaWarn warn = new IpaWarn(proto);
warn.setStacktrace(ThrowableProxyUtil.asString(logEvent.getThrowableProxy()));
event = warn;
break;
case Level.INFO_INT:
event = new IpaInfo(proto);
break;
default:
addWarn("Unsupported log level: " + level.levelStr);
return;
}
Map<String, String> mdcPropertyMap = logEvent.getMDCPropertyMap();
if (!mdcPropertyMap.isEmpty()) {
String operation = mdcPropertyMap.get(DiagnosticsHelper.MDC_PROP_OPERATION);
if (operation != null && !operation.isEmpty()) {
event.setOperation(operation);
}
}
event.setLogger(logger);
event.setMessageFormat(logEvent.getMessage());
event.setMessageArgs(logEvent.getArgumentArray());
try {
etwProvider.writeEvent(event);
} catch (ApplicationInsightsEtwException e) {
addError("Exception from EtwProvider: " + e.getLocalizedMessage(), e);
}
}