There is an easier way! Use the --verbose option. This will start the server but it will not return control to asadmin. Instead it will take over the command window and all logging output will go to the window as well as the server logfile. As a bonus, you can press Ctrl-Break (on Windows) to trigger a thread dump.
Appserver launching has changed significantly as of build 26. It is now far easier to understand and debug.
In the beginning...
Before build 26 of 9.1 all server launches involved running shell scripts in external processes. There were a number of reasons for doing this which aren't worth getting into. 4-7 processes were involved in both starting and stopping servers. Here is a simple diagram of how that worked
I've been scratching my head over this bug for a LONG time and I finally nailed it down today. Here is the non-executive (i.e. wirehead) summary:
I call an external process and parse the stdout that the process generates. I have dozens of such calls in the code. The other calls are relatively slow (seconds to minutes). This one is very fast -- it just returns a chunk of text with its version information.
The bug is that the process returns an empty string instead of the expected 1000 bytes or so.
I catch complaints, now and then, about my putting left braces on a line by themselves. I originally got this habit because my CS professor would give us 0% if we didn't do that religously! Now I have a hard time reading code because the braces don't line up. Furthermore, I keep seeing bizarre indenting which I think is a far more serious problem.
IMHO we should allow the left braces to be on their own line, or not, depending on the taste of the programmer -- keeping in mind Bill Shannon's rule #0 about formatting (match the existing style).