geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Mulder <ammul...@alumni.princeton.edu>
Subject Re: New Startup Output, Mark 2
Date Fri, 08 Jul 2005 15:07:13 GMT
On Fri, 8 Jul 2005, Geir Magnusson Jr. wrote:
> > At the risk of showing words in your mouth, are you suggesting it
> > would just be nice to see how long it took to start each component?
> 
> Exactly. It would just give people a reference as to what got done at  
> each additional delta of the progress bar...

This should be easy for someone to implement.  Let me explain:

 - The code is in the system module
 - The class that starts the server is Daemon.
 - Daemon uses a helper class that implements StartupMonitor and calls
   the appropriate methods on that as things happen during the startup
   sequence.  The helper class is responsible for nearly all output from
   the startup classes themselves.
 - The progress bar is implemented in ProgressBarStartupMonitor
 - The non-pb is implemented in SilentStartupMonitor

	So, if you want additional output in a non-progress-bar case (such 
as with DEBUG or INFO output enabled), you can either add code to 
SilentStartupMonitor or add a new implementation of StartupMonitor and 
instantiate that instead of SilentStartupMonitor in the "-v" and "-vv" 
cases (leaving SilentStartupMonitor for the "-quiet" case).

	The startup monitor is called every time a configuration is 
loading, loaded, starting, and started.  Note there are only a handful of 
configurations (5-10, usually), you do not get a call for every GBean 
loaded or something like that.  Anyway, if you want to know how long it 
takes each configuration to be loaded and started, just call 
System.currentTimeMillis here and there and keep some statistics.

	I would recommend that you save any such output to the end for the 
case where DEBUG or INFO output is enabled, since it would otherwise be 
lost among all the initial output.  But if you save the stats along the 
way, the final output could look something like this:

10:51:28,745 INFO  [Daemon] Server startup completed
10:51:28,745 INFO  [MyMonitor] 3s to start org/apache/geronimo/System
10:51:28,745 INFO  [MyMonitor] 5s to start org/apache/geronimo/Server
10:51:28,745 INFO  [MyMonitor] 2s to start org/apache/geronimo/Deployer
...

	Finally, I don't think it's a good idea to add something like this
to the progress bar.  The progress bar is very clean by design, and I
don't think more specific statistics would be helpful to the typical user.  
The server developers are more likely to be interested in finer-grained
information (and more likely to want more detailed log output as well), so
I'd prefer this kind of thing get added to the "-v" or "-vv" startup
options instead.

Thanks,
	Aaron

Mime
View raw message