Could you remove the auto-configuration of Log4j? It's rather unfortunate of a library to configure my logging for me, especially in a hard-coded way that I cannot easily disable. I think it's not a controversial statement to say that logging is something that should be left to the deployer of the code to decide. What if I wanted to configure logging in my own code so that all logging went to a database or something like that? Now I'd have to be very careful to run my logging setup code before your Context static initializer runs, otherwise I'd have a few stray logging statements that didn't use my preferred logging system.

This also creates a runtime dependency on Log4j specifically, which crashes with java.lang.NoSuchMethodError: org.apache.log4j.Logger.getAllAppenders()Ljava/util/Enumeration; if log4j is not present. I prefer to use Logback, but the same problem would exist if I chose to use any other logging library.

Ideally you could switch your logging dependency to SLF4J to make it easy for your users to use whichever logging library they choose (the suggested path for any library), but not crashing would be a good start.