I would to drop some requirements I've seen in the Java world.
* As klamonte mention in the pull request on GitHub: Appenders
are a must in a enterprise enviorment.
* Same with filters. In SLF4J normally each class has it's own
logger which can be filtered or appended to individual files.
* Runtime configuration. Crucial when collection data about bugs
in running systems.
* Performance... The possibility to write asynchronous loggers.
* Sometimes it's expensive to construct the log output. In Java
for example Logback calls toString on objects after it has
concluded that the data is needed. So a possibility to pass an
function for constructing the log output only when the logger is
sure that it's going to be logged.
My 2 SEK. ;-)