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$NioSocketWrapper@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(ThreadPoolExecutor.java:624) >[na:1.8.0_212] >at >org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.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