In my case, IntelliJ was picking up the Jar "slf4j-api-1.6.1.jar" by mistake, whereas I was expecting my code to be using "slf4j-api-1.7.10.jar".
There is a brief (but kind of subtle) discussion of why this is in the SLF4J FAQ. The idea behind the change is that the creators of Log4J made Log4J use Marker objects instead of Strings, while earlier betas used just Object. It seems like they changed it to be more permissive. The accepted answer calls out that wrong method call gets selected when the classpath has the wrong jar.
If you're using Lombok, it gets more confusing too, because the @Slf4j
annotation interferes with the type used here.
Once I removed the 1.6.1 Jar from my classpath, and put in the 1.7.10 Jar instead, compilation started working again.