示意图
简述
1. NioEndpoint 接收请求
2. Processor 的子类AbstractProcessorLight 处理请求
3. AbstractProcessorLight方法service请求
4. 请求失败触发CoyoteAdapter找到对应的container,
5. 通过ContainerBase找到该container关联的Values,有哪些values实现了AccessLog,将这些values填充到AcesslogAdapter
6. 通过AcesslogAdapter依次触发这些values的访问日志输出。
关键代码入口
1. 处理请求 org.apache.coyote.AbstractProcessorLight#process
2. coyoteAdapter 承接log任务 org.apache.catalina.connector.CoyoteAdapter#log 找到对应的container触发logAccess
3. org.apache.catalina.core.ContainerBase#logAccess
4. containerBase创建AccessLogAdapter和添加value org.apache.catalina.core.ContainerBase#getAccessLog
标签:AccessLog,catalina,container,请求,tomcat,AbstractProcessorLight,apache,org,log From: https://blog.51cto.com/u_15913327/5995409