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.



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$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
>
>

Reply via email to