The snapshot releases of log4j-api and log4j-core are currently generated with an empty Automatic-Module-Name header within their manifests. As Java 9 will look for this header first, it is impossible to compile against (with the exception of the maven-compiler-plugin which seems to circumvent this issue somehow) or load these jars even when a module-info.class is present (see below).
This issue currently only affects 2.10.1-SNAPSHOT and 3.0.0-SNAPSHOT versions and prevents developers from integrating log4j in their modular projects entirely (since the latest stable release (2.10.0) is affected by
LOG4J2-2129 and thus fails to load within these environments as well).
A test project which will produce the errors outlined below is available here (compiler errors only seem to occur within IDEs, runtime errors do occur regardless of compilation method).