How to print Java stack trace in JMeter

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

How to print Java stack trace in JMeter

Tong Sun
Hi,

Most people would have some Java code to support JMeter test scripts.
How to print stack trace for the Java code when something went wrong?

I tried:

try {
   // some code
} catch(Error e) {
   log.error("Error: $e")
   log.info("${org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
Exception(e)).printStackTrace()}")
}

base on https://stackoverflow.com/questions/6259202/how-do-i-print-a-groovy-stack-trace
and also `e.printStackTrace()` from Java, but both print out just "null"

pls help. thx

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: How to print Java stack trace in JMeter

Felix Schumacher

Am 23.12.20 um 19:16 schrieb Tong Sun:

> Hi,
>
> Most people would have some Java code to support JMeter test scripts.
> How to print stack trace for the Java code when something went wrong?
>
> I tried:
>
> try {
>    // some code
> } catch(Error e) {
>    log.error("Error: $e")
>    log.info("${org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
> Exception(e)).printStackTrace()}")
> }
>
> base on https://stackoverflow.com/questions/6259202/how-do-i-print-a-groovy-stack-trace
> and also `e.printStackTrace()` from Java, but both print out just "null"

Where would you place those code? If you use that inside of JMeter
JSR-223 scripts, you will get bitten by JMeter replacing the ${...} stuff.

Felix

>
> pls help. thx
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: How to print Java stack trace in JMeter

Tong Sun
On Wed, Dec 23, 2020 at 1:19 PM Felix Schumacher
<[hidden email]> wrote:

>
>
> Am 23.12.20 um 19:16 schrieb Tong Sun:
> > Hi,
> >
> > Most people would have some Java code to support JMeter test scripts.
> > How to print stack trace for the Java code when something went wrong?
> >
> > I tried:
> >
> > try {
> >    // some code
> > } catch(Error e) {
> >    log.error("Error: $e")
> >    log.info("${org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
> > Exception(e)).printStackTrace()}")
> > }
> >
> > base on https://stackoverflow.com/questions/6259202/how-do-i-print-a-groovy-stack-trace
> > and also `e.printStackTrace()` from Java, but both print out just "null"
>
> Where would you place those code? If you use that inside of JMeter
> JSR-223 scripts, you will get bitten by JMeter replacing the ${...} stuff.

Yeah, exactly in the JSR-223 scripts.

I put merely

org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
Exception(e)).printStackTrace()

before but nothing get printed in log, so I changed to log.info instead.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: How to print Java stack trace in JMeter

Felix Schumacher

Am 23.12.20 um 19:23 schrieb Tong Sun:

> On Wed, Dec 23, 2020 at 1:19 PM Felix Schumacher
> <[hidden email]> wrote:
>>
>> Am 23.12.20 um 19:16 schrieb Tong Sun:
>>> Hi,
>>>
>>> Most people would have some Java code to support JMeter test scripts.
>>> How to print stack trace for the Java code when something went wrong?
>>>
>>> I tried:
>>>
>>> try {
>>>    // some code
>>> } catch(Error e) {
>>>    log.error("Error: $e")
>>>    log.info("${org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
>>> Exception(e)).printStackTrace()}")
>>> }
>>>
>>> base on https://stackoverflow.com/questions/6259202/how-do-i-print-a-groovy-stack-trace
>>> and also `e.printStackTrace()` from Java, but both print out just "null"
>> Where would you place those code? If you use that inside of JMeter
>> JSR-223 scripts, you will get bitten by JMeter replacing the ${...} stuff.
> Yeah, exactly in the JSR-223 scripts.
>
> I put merely
>
> org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new
> Exception(e)).printStackTrace()


I always do one of the following (in a JSR-223 Groovy script):

try {

 1 / 0 // throw an exception

} catch(e) {

  log.info("Ooops: " + e); // without stacktrace

  log.info(Ooops: " + e, e); // with stacktrace

}

but if you are afraid of the Groovy methods in the stacktrace, you can use

 log.info("OOOps: " + ,
org.codehaus.groovy.runtime.StackTraceUtils.sanitize(e))

The sanitize method works on the original excpetion (in this case e) and
gives back a new exception with a sanitized stacktrace.

Felix

>
> before but nothing get printed in log, so I changed to log.info instead.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]