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) When Tomcat’s minimum required Java runtime version becomes 9 that can be replaced with StackWalker. Best regards, Behrang Saeedzadeh blog.behrang.org On Sun, Oct 27, 2019 at 7:48 AM Christopher Schultz < ch...@christopherschultz.net> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > 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$NioSocketWrapp > 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(ThreadPoolExecutor > .java:1149) > >>> > >>> > [na:1.8.0_212] > >>> at > >> > >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecuto > r.java:624) > >>> > >>> > [na:1.8.0_212] > >>> at > >> > >>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskT > 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 > >> > >> > > > -----BEGIN PGP SIGNATURE----- > Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ > > iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl20sRQACgkQHPApP6U8 > pFjIUhAAnPUFDK1fvi/4LL7hWGThpli/VkHaII3VisokqjjnGLxPAJyzUFy+Gvza > vjnq1WIYJWQc6r0a8j6FwAvjNVVtJ4WJMP3ANVe154h3RN2Su6q8PMVyZIRE21vY > kNg3UBcBYsJlAEwd0D7X6jsM2uUIinAmEVLqeNTIJWeo7YpmA1F+txn3Q4BDaO0o > hQ/i2hfk+d+M6upfmdVV1KW5Me+lwXRdVVMn3cxzxGEUEAXzPanp3tNXVVet4G7Q > 7erzyxZ0tdxpUl4JbkVHm6mXEykPjsGXNPXLjBbghByI6+M2u1/DQl4maVkRY6g3 > SX/19vfmn60Fgq1XuaKaAepjWTPEUcd6V35U7Pr3f7Dzl6zUG4QsGdCMtQO4YHAJ > dK3z/CCADudv3xDHqMUJzagB3SUGc86FSYMAslAt6wlYB/5xY9hcF+LApRj5IIEM > VFN2NEH4g5ehXZMXjULDQzzggW91LUXCD0gHN4b0t1/gcovBVAbcNLbFXCaPIGBj > Nv7RG546A050ej7ZemUr7dZTshrJHo2OEq16XcxGaeY9e208rXlUlFfyytHFyArv > ieJI0IN/0iBHOB2nRKdeiB62pdGAU0E2uL64BL6CibCItR/rlhJQsih271z0v3Sd > M3xdScWJDJ4oKGoxlpdqO65NRC9phTlXnqxWmO4YDPVyqKKHL3E= > =csbh > -----END PGP SIGNATURE----- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >