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