[tomcat] log-AccessLog 请求流程

时间:2023-01-07 09:59:53

示意图

[tomcat] log-AccessLog 请求流程

[tomcat] log-AccessLog 请求流程

简述

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