Hmm, good point. Would most users expect/want to log a stacktrace or the throwable toString when calling logger.trace(throwable)?
One could argue for both, but perhaps the current behaviour is least surprising... Sent from my iPhone > On 2015/02/28, at 13:59, Gary Gregory <[email protected]> wrote: > > Maybe I did not think this through... > > Today, if someone calls logger.trace(throwable), we log throwable.toString(). > If we change that to logging a stack trace, it's a big change in behavior. > > The question is: Should we consider calling logger.trace(throwable) a bug if > we log throwable.toString() instead of a stack trace? > > Gary > >> On Fri, Feb 27, 2015 at 8:50 PM, Remko Popma <[email protected]> wrote: >> Sorry, I don't understand what you mean. >> >> If users want to log a stack trace they use logger.trace(throwable); >> If they want to log the result of throwable.toString() they call >> logger.trace(throwable.toString()); >> >> Or am I missing something? >> >> Remko >> >> >>> On 2015/02/28, at 10:01, Gary Gregory <[email protected]> wrote: >>> >>> Yeah, that's a bit too clever and does not give you the option of actually >>> having a Throwable as an "Object" that will be toString()... >>> >>> Gary >>> >>>> On Fri, Feb 27, 2015 at 4:41 PM, Remko Popma <[email protected]> wrote: >>>> Nice catch! I just saw this happen at work, I agree we should do something >>>> about it. >>>> >>>> One solution would be to modify ObjectMessage.getFormattedString(): >>>> If the object is an instance of Throwable then return the Throwable's >>>> stacktrace instead of its toString() result. >>>> >>>> I'm not a big fan of using instanceof, but it gives us a very compact >>>> solution. >>>> >>>> Thoughts? >>>> >>>> Sent from my iPhone >>>> >>>>> On 2015/02/28, at 8:33, Gary Gregory <[email protected]> wrote: >>>>> >>>>> Hi All: >>>>> >>>>> I was just surprised (in a bad) way that calling: >>>>> >>>>> logger.trace(Throwable) compiles to the Object version of the API since >>>>> we do not have a Throwable API. >>>>> >>>>> This means I am forced to do: >>>>> >>>>> logger.trace("Cause:", throwable); >>>>> >>>>> in order to see the stack trace. >>>>> >>>>> Thoughts on adding trace(Throwable)? (As well as the other levels) >>>>> >>>>> Gary >>>>> >>>>> -- >>>>> E-Mail: [email protected] | [email protected] >>>>> Java Persistence with Hibernate, Second Edition >>>>> JUnit in Action, Second Edition >>>>> Spring Batch in Action >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>> >>> >>> >>> -- >>> E-Mail: [email protected] | [email protected] >>> Java Persistence with Hibernate, Second Edition >>> JUnit in Action, Second Edition >>> Spring Batch in Action >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory > > > > -- > E-Mail: [email protected] | [email protected] > Java Persistence with Hibernate, Second Edition > JUnit in Action, Second Edition > Spring Batch in Action > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory
