如何知道一个Webapp运行时类的执行次序?

对于一个运行在Tomcat下的webapp,我能否观察这个Webapp运行时所有相关类的执行次序,这些类可能互相调用,比如对于 HelloWorldServlet,如果在这个类中需要初始化另外一个类B,那么我希望能有一个日志,能够观察出先是HelloWorldServlet被调用运行,然后是Class B被调用运行。
我这样做的目的是想在分析一些开源的软件时候从底层了解它是怎么运行的,类之间是如何调用的。虽然对这些软件有启动运行日志,但是这些日志只是记录一些主要的类的加载,运行情况,而我要的是详细的运行次序,详细到每一个类被装载、运行。
我看了一些关于ClassLoader方面的资料,但似乎ClassLoader阐述的不是这方面.
恳请高手指点!!!

自己找到了解决的办法,
写个程序给每个不是接口的类中增加构造函数,在构造函数里写上打印语句,然后重新编译整个工程(我正在编译Jetspeed 1.4和turbine 2.2),我的天,终于成功了。
而且这仅仅是构造函数中的信息。
但是发现打印出来的日志对我观察问题没有帮助,苦恼中。。。。

log4j支持

恐怕不行吧,还是要手工在每个类里加上日志语句。

却发现如此的困难,通读它的源代码,也找不到解决的办法。
看来开源软件要想真的深入开发,需要做的工作太多了,也太大了。
我所要的解决的问题,也许就是那些开源作者提供咨询服务的收费项目呢:)