As I noted above, I couldn't get https://logging.apache.org/log4j/2.x/manual/customconfig.html#AddingToCurrent to work, at least, not the way I expected it to (my appender would never get messages routed to it). I did finally stumble across a pattern that works for me - allowing me to add an appender at runtime, and have that appender actually get log messages routed to it.
Edit I removed a bunch of confusing code from here that wasn't doing anything....
LoggerContext lc = (LoggerContext) LogManager.getContext(false);
FileAppender fa = FileAppender.newBuilder().withName("mylogger").withAppend(false).withFileName(new File(outputDirectory, "ConsoleOutput.txt").toString())
.withLayout(PatternLayout.newBuilder().withPattern("%-5p %d [%t] %C{2} (%F:%L) - %m%n").build())
.setConfiguration(lc.getConfiguration()).build();
fa.start();
lc.getConfiguration().addAppender(fa);
lc.getRootLogger().addAppender(lc.getConfiguration().getAppender(fa.getName()));
lc.updateLoggers();
A key point for me, was that calling addAppender and passing your appender directly doesn't work, but asking for your appender back by name seems to. Which doesn't make sense... but since working, and I'm tired of wasting time on something that should be so simple....