May 7th, 2011, 04:56 AM
dm Server Tooling
When developing with standard Eclipse (or MyEclipse) and Tomcat, I've become very used to my stdout and stderr streams being sent to the Eclipse console window. stdout shows up in black, and stderror shows up in red. The console window hyperlinks stack traces to jump right to the code.
In STS 2.2.0 and dm Server 2.0 M6, when I do a System.out.println or System.err.println from any of my bundles it appears the ouput is being swallowed. I don't see the output in any file on my hard-drive and its not showing up in the console.
I see System.out and System.err have been replaced by a com.springsource.osgi.medic.log.impl.LoggingPrintS treamWrapper, but since the source code isn't attached to the server by default I can't step through it to find out where that code is going.
As well, I checked the "Tail applicaiton trace files into Console view" and that doesn't appear to be working. The trace files content doesn't appear in the console.
If you'd like me to write up a JIRA, it would be simple:
1) please send stdout to the STS console in black text
2) please send stderr to the STS console in red text
3) please ensure that the stacktraces dumped out are hyperlinked and jumping to the code that is hyperlinked works properly for all items in the stack trace
I think all of these are standard Eclipse behavior, you just have to get STS and dm Server to play well together.
Also, beware, if you haven't found it already there's a method in org.apache.catalina.startup.Embedded.java called initStreams() which redirects System.out and System.err to a SystemLogHandler and thus messes up the stderr displayed in red thing. You need to set Embedded.redirectStreams to false in order to get it initStreams to leave System.out and System.er alone.
So, where are stdout and stderr?
Reply With Quote