void (String message, @Nullable Throwable t, String @NotNull ... details) { Set<LoggedErrorProcessor.Action> actions = LoggedErrorProcessor.getInstance().processError(myLogger.getName(), requireNonNullElse(message, ""), details, t); if (actions.contains(LoggedErrorProcessor.Action.LOG)) { if (t instanceof TestLoggerAssertionError && message.equals(t.getMessage()) && details.length == 0) { throw (TestLoggerAssertionError)t; } message = message + DefaultLogger.detailsToString(details) + DefaultLogger.attachmentsToString(t); t = ensureNotControlFlow(t); if (myFactory.mySplitTestLogs) { myFactory.buffer(LogLevel.ERROR, myLogger.getName(), message, t); } super.info(message, t); } if (actions.contains(LoggedErrorProcessor.Action.STDERR) && DefaultLogger.shouldDumpExceptionToStderr()) { System.err.println("ERROR: " + message); if (t != null) t.printStackTrace(System.err); } if (actions.contains(LoggedErrorProcessor.Action.RETHROW)) { throw new TestLoggerAssertionError(message, t); } }