On closer inspection it seems that the error occurs when the OnStartupTriggeringPolicy class is being loaded.
Which means that we can't even import java.lang.management.ManagementFactory; without ticking off Google App Engine...
Since this is a once-only initialization and performance impact will be negligible we can use reflection to try and call ManagementFactory.getRuntimeMXBean().getStartTime().
If that fails, I propose we use System.currentTimeMillis instead.
This means that on Google App Engine, using OnStartupTriggeringPolicy results in log files older than Log4j initialization time will be rolled over. (In other environments the behavior is still: log files older than the current JVM's start time are rolled over.)