I set properties Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector to make all logging async; it works quite well while my app is up which is running on liberty.
when I try to shut it down with liberty's stop command. Log4j cannot stop normally, it looks like that its AsyncLoggerDisruptor.stop(at line 152) method want to load class DiscardingAsyncQueueFullPolicy， but the ClassLoader cannot be found, so system begin to throws NPE; at the same time log4j cannot write any more message, as it cannot get logger any more as system is shutting down. so log4j began to thow exception eventually it cause OOME.
I guess it's async logger issue. so I remove the Log4jContextSelector properties and try. it works. I will try sync logger and async appender later.