-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Behrang,
On 10/26/19 20:22, Behrang Saeedzadeh wrote: > Hi Chris, > > I suggested “massaging” it a bit before using the output: > > stack trace into a StringWriter via a PrintWriter, massage it a > bit > > For example: > > StringWriter sw = new StringWriter(); PrintWriter pw = new > PrintWriter(sw); Exception e = new Exception(); pw.append("Current > stack trace:\n");for (StackTraceElement stackTraceElement : > e.getStackTrace()) { pw.append("\tat > ").append(stackTraceElement.toString()).append("\n"); } > > System.out.println(sw.toString()); > > Which will produce: > > Current stack trace: at > com.example.demo.DemoApplication.baz(DemoApplication.java:33) at > com.example.demo.DemoApplication.foo(DemoApplication.java:20) at > com.example.demo.DemoApplication.main(DemoApplication.java:15) Other than writing to stdout, how is that any different from the behavior of logger.debug("message", e) ? Are you just trying to get rid of the "java.lang.Exception: message" part of the output? I just don't understand how this is an improvement over what is already there. - -chris > On Sun, Oct 27, 2019 at 7:48 AM Christopher Schultz < > ch...@christopherschultz.net> wrote: > > Behrang, > > On 10/26/19 07:01, Behrang Saeedzadeh wrote: >>>> I think so. Another option is to create an exception and >>>> print the stack trace into a StringWriter via a PrintWriter, >>>> massage it a bit if necessary and add that to the log >>>> message. > > ... which would produce the same output? > > What's the goal of the change? > > -chris > >>>> On Sat, 26 Oct. 2019, 9:12 pm Mark Thomas, >>>> <ma...@apache.org> wrote: >>>> >>>>> On October 25, 2019 9:27:21 AM UTC, Behrang Saeedzadeh < >>>>> behran...@gmail.com> wrote: >>>>>> From Tomcat Embedded Core 9.0.26: >>>>>> >>>>>> @Override protected void doClose() { if >>>>>> (log.isDebugEnabled()) { log.debug("Calling [" + >>>>>> getEndpoint() + "].closeSocket([" + this + "])", new >>>>>> Exception()); } >>>>>> >>>>>> Which will log something like: >>>>>> >>>>>> DEBUG [http-nio-8080-exec-2] >>>>>> org.apache.tomcat.util.net.NioEndpoint Calling >>>>>> [org.apache.tomcat.util.net.NioEndpoint@654c1a54 >>>>> >>>>>> ].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWr app > >>>>>> er@39e9d240 >>>>>> >>>>>> > :org.apache.tomcat.util.net.NioChannel@78019ed5 >>>>> :java.nio.channels.SocketChannel[connected >>>>>> local=/127.0.0.1:8080 remote=/127.0.0.1:39988]]) >>>>>> >>>>>> java.lang.Exception: null at org.apache.tomcat.util.net >>>>> .NioEndpoint$NioSocketWrapper.doClose(NioEndpoint.java:1165) >>>>>> >>>>> [tomcat-embed-core-9.0.26.jar:9.0.26] at >>>>>> org.apache.tomcat.util.net >>>>> .SocketWrapperBase.close(SocketWrapperBase.java:394) >>>>>> [tomcat-embed-core-9.0.26.jar:9.0.26] at >>>>>> org.apache.tomcat.util.net >>>>> .NioEndpoint$Poller.cancelledKey(NioEndpoint.java:667) >>>>>> [tomcat-embed-core-9.0.26.jar:9.0.26] at >>>>>> org.apache.tomcat.util.net >>>>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1592) >>>>>> [tomcat-embed-core-9.0.26.jar:9.0.26] at >>>>>> org.apache.tomcat.util.net >>>>> .SocketProcessorBase.run(SocketProcessorBase.java:49) >>>>>> [tomcat-embed-core-9.0.26.jar:9.0.26] at >>>>> >>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecu tor > >>>>>> .java:1149) >>>>>> >>>>>> > [na:1.8.0_212] >>>>>> at >>>>> >>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExec uto > >>>>>> r.java:624) >>>>>> >>>>>> > [na:1.8.0_212] >>>>>> at >>>>> >>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(Ta skT > >>>>>> hread.java:61) >>>>>> >>>>>> > [tomcat-embed-core-9.0.26.jar:9.0.26] >>>>>> at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212] >>>>>> >>>>>> To print the stack trace next to the message? >>>>> >>>>> Yes. So the debug message shows what called close(). >>>>> >>>>>> Every time I turn on debug logging this exception catches >>>>>> me by surprise. Why not only print the stack trace next >>>>>> using >>>>>> org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace >>>>>> >>>>>> for example? >>>>> >>>>> Because that adds an entire library as a dependency to >>>>> support a single debug message. And new Exception() gives >>>>> what we need without that dependency. Would adding a >>>>> message to the exception such as "Tracing caller" make >>>>> things clearer? >>>>> >>>>> Mark >>>>> >>>>> ------------------------------------------------------------------ - --- >>>>> >>>>> > >>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>> For additional commands, e-mail: >>>>> users-h...@tomcat.apache.org >>>>> >>>>> >>>> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> > -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl225zQACgkQHPApP6U8 pFjiRw/7Blg4irk2PTyydw0WOzl0C7AU6An7DeuVIjzExkCvv0qsici6Q5LwULPF tEAvPJmwx2DMB/HKWB6cH5RD/GHQlzL6x8CjyQmw81pbu8uvsHojagfxNUPUdCtc IqNkPktywTUx2PZlNGbiT929WF1RP3ppvpHfSbtLe7rWutONumzIhrzBUUiUURpP NH8BCG68+5tq9g4dyj4KSMOV5DIn7MNqhdubVVl83UTzRwX26qBnurCby5Jff1kz Hxulflvq4xCbjc6b20zMcGQCqJrS5QCGiX7lRO3nI2t0ohS+IU+F5q42Yxj/weo0 N2Kq880bpxXY/oYKmk+BnK/niPwhqUlDZeVNajboq29K0rj7W4Sl3IgtcneFA23x 9b5+dqCuxRkoFY9/xWDooZJCyGq9944wFc0s3XYZMOoWGsViyVZ9vMoNu3esSWBn aglIXq+Zw87vQBlQQVctg9IlHQTRYsdNzb7aWj9Rr+DFLo9Y/r1GLJ1Aifg6d9sR q07G6h8JwnrjuCrU5EyzuM8YjyG/NXlq32d/gArwSVonWwmviNbIkOEIVfl4OiBO jaSkdCQwK1WzyaVCDQ6VxZCO0n2V489ptpYFbslcMQleGtLMKfVT27R0Xkfd/CbP IPqheemnk0bOcOnO4h/BPY6THNogtjf32B5BZWLbj/qRXdIIU70= =y+hw -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org