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

Reply via email to