title: slf4j without toString()
body: <p>When you do something like <code>LOG.debug("Exported {}.", product)</code> in slf4j it will eventually call toString() on the arguments, e.g. <code>product</code>.</p>
  
  <p>For certain reasons, I can't override toString() on all the classes I want to use as arguments. Some classes come from third party jars, others will have their toString() called in other contexts, too, where the information I want to print in my log statement isn't available.</p>
  
  <p>However, I have a class for debugging purposes which has a method <code>DebugFormatter.format(Object)</code> that has a long cascade of instanceofs that selects the routine to find some useful debugging information about that object.</p>
  
  <p>My question is: Is it possible to configure slf4j so that it calls such a static method instead of toString()?</p>
  
  <p>Of course, I could call my format method on the object before passing it as a parameter to <code>Logger.debug()</code> but then it would be executed even when the respective logger is not enabled. So I had to surround it with <code>if (LOG.isDebugEnabled())</code> which means that the whole point of having arguments in debug() was missed.</p>