private void doLogError(String message, @Nullable Throwable t, String @NotNull ... details) {
    if (t instanceof ControlFlowException) {
      myLogger.log(Level.SEVERE, message, ensureNotControlFlow(t));
      ExceptionUtil.rethrow(t);
    }

    String detailString = String.join("\n", details);
    if (!detailString.isEmpty()) {
      detailString = "\nDetails: " + detailString;
    }

    if (ourErrorsOccurred == null) {
      String mess = "Logger errors occurred. See IDEA logs for details. " +
                    (message == null || message.isEmpty() ? "" : "Error message is '" + message + "'");
      //noinspection AssignmentToStaticFieldFromInstanceMethod
      ourErrorsOccurred = new Exception(mess + detailString, t);
    }
    myLogger.log(Level.SEVERE, message + detailString, t);
  }
private void doLogError(String message, @Nullable Throwable t, String @NotNull ... details)