protected void append()

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);
    }
  }