tomcat 启动简述 System.out/err 重定向 console 控制台 catalina.out

1、tomcat启动加载简述

bin目录执行启动脚本,执行bin目录下的Bootstrap.jar中的org.apache.catalina.startup.Bootstrap类中的main方法,之后执行init方法,然后设置setCatalinaHome、setCatalinaBase、initClassLoaders,绑定tomcat自定义classloader到当前线程中。自定义classLoader加载lib目录中catalina.jar中的org.apache.catalina.startup.Catalina。

脚本传递start参数,执行Bootstrap.start方法,classLoader加载过的Catalina即变量catalinaDaemon,反射执行方法start即执行Catalina.start,方法中执行load方法,加载各种配置,然后执行initStreams方法,

System.setOut(new SystemLogHandler(System.out));
System.setErr(new SystemLogHandler(System.err));

SystemLogHandler在lib目录中的tomcat-coyote.jar文件中

System.out/err重定向到控制台以及catalina.out文件中

然后是执行Catalina.await()-->StandardServer.await()-->启动socket new ServerSocket 8005 等待脚本发送SHUTDOWN 指令,以停止server

server-->org.apache.catalina.core.StandardServer lib目录下的catalina.jar中

以上都是简述都不重要,其实系统输出重定向到控制台在脚本之中

linux-->catalina.sh

window-->就在窗口控制台

以下是 catalina.sh中脚本关键部分

搜索 linux 2>&1 

window下你依旧在日志文件中看不到 system.out输出的内容,所以还是不建议system.out log debug message

猜你喜欢

转载自my.oschina.net/u/1434882/blog/1785493