Call by name (or lazy evaluation) will be accessible using Supplier of String.
The example below :
logger.trace(() -> "trace msg "+echo()) ;
note that echo method and String concatenation will only be evaluation if trace level is enabled.
I also initiated the pull request : https://github.com/qos-ch/slf4j/pull/70
Tests are passing on Travis CI.
BR.